/******************************************************************************* * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * All rights reserved. This program and the accompanying materials are made available under * the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package gov.redhawk.ide.graphiti.ui.diagram.util; import org.eclipse.graphiti.features.IFeatureProvider; import org.eclipse.graphiti.mm.pictograms.Diagram; import gov.redhawk.ide.graphiti.ui.diagram.patterns.AbstractFindByPattern; import gov.redhawk.ide.graphiti.ui.diagram.patterns.FindByCORBANamePattern; import gov.redhawk.ide.graphiti.ui.diagram.patterns.FindByDomainManagerPattern; import gov.redhawk.ide.graphiti.ui.diagram.patterns.FindByEventChannelPattern; import gov.redhawk.ide.graphiti.ui.diagram.patterns.FindByFileManagerPattern; import gov.redhawk.ide.graphiti.ui.diagram.patterns.FindByServicePattern; import mil.jpeojtrs.sca.partitioning.DomainFinder; import mil.jpeojtrs.sca.partitioning.FindBy; import mil.jpeojtrs.sca.partitioning.FindByStub; public class FindByUtil { private FindByUtil() { } /** * Create FindByStub in the diagram based on values in findBy * @param findBy * @param featureProvider * @param diagram * @return */ public static FindByStub createFindByStub(FindBy findBy, IFeatureProvider featureProvider, Diagram diagram) { FindByStub findByStub = FindByUtil.createFindByStub(findBy); if (findByStub != null) { AbstractFindByPattern.addFindByToDiagram(diagram, featureProvider, findByStub); } return findByStub; } /** * Creates a FindByStub instance based on the input FindBy. The result is not contained by any resource. * @param findBy * @return */ private static FindByStub createFindByStub(FindBy findBy) { if (findBy.getNamingService() != null) { String name = findBy.getNamingService().getName(); if (name != null) { return FindByCORBANamePattern.create(name); } } else if (findBy.getDomainFinder() != null) { DomainFinder domainFinder = findBy.getDomainFinder(); String name = domainFinder.getName(); switch (domainFinder.getType()) { case DOMAINMANAGER: return FindByDomainManagerPattern.create(); case EVENTCHANNEL: if (name != null) { return FindByEventChannelPattern.create(name); } break; case FILEMANAGER: return FindByFileManagerPattern.create(); case LOG: // Log is not supported break; case NAMINGSERVICE: if (name != null) { return FindByCORBANamePattern.create(name); } break; case SERVICENAME: if (name != null) { return FindByServicePattern.createFindByServiceName(name); } break; case SERVICETYPE: if (name != null) { return FindByServicePattern.createFindByServiceType(name); } break; default: break; } } return null; } }