package IAC.diagram.part; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.gmf.runtime.notation.View; import IAC.IACPackage; import IAC.Model; import IAC.Node; import IAC.Transition; import IAC.Variable; import IAC.diagram.edit.parts.ModelEditPart; import IAC.diagram.edit.parts.NodeEditPart; import IAC.diagram.edit.parts.NodeFather_ofEditPart; import IAC.diagram.edit.parts.NodeVariablesEditPart; import IAC.diagram.edit.parts.TransitionEditPart; import IAC.diagram.edit.parts.VariableEditPart; import IAC.diagram.providers.IACElementTypes; /** * @generated */ public class IACDiagramUpdater { /** * @generated */ public static List<IACNodeDescriptor> getSemanticChildren(View view) { switch (IACVisualIDRegistry.getVisualID(view)) { case ModelEditPart.VISUAL_ID: return getModel_1000SemanticChildren(view); } return Collections.emptyList(); } /** * @generated */ public static List<IACNodeDescriptor> getModel_1000SemanticChildren( View view) { if (!view.isSetElement()) { return Collections.emptyList(); } Model modelElement = (Model) view.getElement(); LinkedList<IACNodeDescriptor> result = new LinkedList<IACNodeDescriptor>(); for (Iterator<?> it = modelElement.getVariables().iterator(); it .hasNext();) { Variable childElement = (Variable) it.next(); int visualID = IACVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == VariableEditPart.VISUAL_ID) { result.add(new IACNodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getNodes().iterator(); it.hasNext();) { Node childElement = (Node) it.next(); int visualID = IACVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == NodeEditPart.VISUAL_ID) { result.add(new IACNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<IACLinkDescriptor> getContainedLinks(View view) { switch (IACVisualIDRegistry.getVisualID(view)) { case ModelEditPart.VISUAL_ID: return getModel_1000ContainedLinks(view); case VariableEditPart.VISUAL_ID: return getVariable_2005ContainedLinks(view); case NodeEditPart.VISUAL_ID: return getNode_2006ContainedLinks(view); case TransitionEditPart.VISUAL_ID: return getTransition_4007ContainedLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getIncomingLinks(View view) { switch (IACVisualIDRegistry.getVisualID(view)) { case VariableEditPart.VISUAL_ID: return getVariable_2005IncomingLinks(view); case NodeEditPart.VISUAL_ID: return getNode_2006IncomingLinks(view); case TransitionEditPart.VISUAL_ID: return getTransition_4007IncomingLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getOutgoingLinks(View view) { switch (IACVisualIDRegistry.getVisualID(view)) { case VariableEditPart.VISUAL_ID: return getVariable_2005OutgoingLinks(view); case NodeEditPart.VISUAL_ID: return getNode_2006OutgoingLinks(view); case TransitionEditPart.VISUAL_ID: return getTransition_4007OutgoingLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getModel_1000ContainedLinks(View view) { Model modelElement = (Model) view.getElement(); LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Transition_4007(modelElement)); return result; } /** * @generated */ public static List<IACLinkDescriptor> getVariable_2005ContainedLinks( View view) { return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getNode_2006ContainedLinks(View view) { Node modelElement = (Node) view.getElement(); LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Node_Variables_4006(modelElement)); result.addAll(getOutgoingFeatureModelFacetLinks_Node_Father_of_4008(modelElement)); return result; } /** * @generated */ public static List<IACLinkDescriptor> getTransition_4007ContainedLinks( View view) { return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getVariable_2005IncomingLinks( View view) { Variable modelElement = (Variable) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer .find(view.eResource().getResourceSet().getResources()); LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Node_Variables_4006( modelElement, crossReferences)); return result; } /** * @generated */ public static List<IACLinkDescriptor> getNode_2006IncomingLinks(View view) { Node modelElement = (Node) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer .find(view.eResource().getResourceSet().getResources()); LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); result.addAll(getIncomingTypeModelFacetLinks_Transition_4007( modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Node_Father_of_4008( modelElement, crossReferences)); return result; } /** * @generated */ public static List<IACLinkDescriptor> getTransition_4007IncomingLinks( View view) { return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getVariable_2005OutgoingLinks( View view) { return Collections.emptyList(); } /** * @generated */ public static List<IACLinkDescriptor> getNode_2006OutgoingLinks(View view) { Node modelElement = (Node) view.getElement(); LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Node_Variables_4006(modelElement)); result.addAll(getOutgoingTypeModelFacetLinks_Transition_4007(modelElement)); result.addAll(getOutgoingFeatureModelFacetLinks_Node_Father_of_4008(modelElement)); return result; } /** * @generated */ public static List<IACLinkDescriptor> getTransition_4007OutgoingLinks( View view) { return Collections.emptyList(); } /** * @generated */ private static Collection<IACLinkDescriptor> getContainedTypeModelFacetLinks_Transition_4007( Model container) { LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); for (Iterator<?> links = container.getTransitions().iterator(); links .hasNext();) { EObject linkObject = (EObject) links.next(); if (false == linkObject instanceof Transition) { continue; } Transition link = (Transition) linkObject; if (TransitionEditPart.VISUAL_ID != IACVisualIDRegistry .getLinkWithClassVisualID(link)) { continue; } Node dst = link.getTarget(); Node src = link.getSource(); result.add(new IACLinkDescriptor(src, dst, link, IACElementTypes.Transition_4007, TransitionEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<IACLinkDescriptor> getIncomingFeatureModelFacetLinks_Node_Variables_4006( Variable target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences .get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() == IACPackage.eINSTANCE .getNode_Variables()) { result.add(new IACLinkDescriptor(setting.getEObject(), target, IACElementTypes.NodeVariables_4006, NodeVariablesEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<IACLinkDescriptor> getIncomingTypeModelFacetLinks_Transition_4007( Node target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences .get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() != IACPackage.eINSTANCE .getTransition_Target() || false == setting.getEObject() instanceof Transition) { continue; } Transition link = (Transition) setting.getEObject(); if (TransitionEditPart.VISUAL_ID != IACVisualIDRegistry .getLinkWithClassVisualID(link)) { continue; } Node src = link.getSource(); result.add(new IACLinkDescriptor(src, target, link, IACElementTypes.Transition_4007, TransitionEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<IACLinkDescriptor> getIncomingFeatureModelFacetLinks_Node_Father_of_4008( Node target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences .get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() == IACPackage.eINSTANCE .getNode_Father_of()) { result.add(new IACLinkDescriptor(setting.getEObject(), target, IACElementTypes.NodeFather_of_4008, NodeFather_ofEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<IACLinkDescriptor> getOutgoingFeatureModelFacetLinks_Node_Variables_4006( Node source) { LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); for (Iterator<?> destinations = source.getVariables().iterator(); destinations .hasNext();) { Variable destination = (Variable) destinations.next(); result.add(new IACLinkDescriptor(source, destination, IACElementTypes.NodeVariables_4006, NodeVariablesEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<IACLinkDescriptor> getOutgoingTypeModelFacetLinks_Transition_4007( Node source) { Model container = null; // Find container element for the link. // Climb up by containment hierarchy starting from the source // and return the first element that is instance of the container class. for (EObject element = source; element != null && container == null; element = element .eContainer()) { if (element instanceof Model) { container = (Model) element; } } if (container == null) { return Collections.emptyList(); } LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); for (Iterator<?> links = container.getTransitions().iterator(); links .hasNext();) { EObject linkObject = (EObject) links.next(); if (false == linkObject instanceof Transition) { continue; } Transition link = (Transition) linkObject; if (TransitionEditPart.VISUAL_ID != IACVisualIDRegistry .getLinkWithClassVisualID(link)) { continue; } Node dst = link.getTarget(); Node src = link.getSource(); if (src != source) { continue; } result.add(new IACLinkDescriptor(src, dst, link, IACElementTypes.Transition_4007, TransitionEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<IACLinkDescriptor> getOutgoingFeatureModelFacetLinks_Node_Father_of_4008( Node source) { LinkedList<IACLinkDescriptor> result = new LinkedList<IACLinkDescriptor>(); for (Iterator<?> destinations = source.getFather_of().iterator(); destinations .hasNext();) { Node destination = (Node) destinations.next(); result.add(new IACLinkDescriptor(source, destination, IACElementTypes.NodeFather_of_4008, NodeFather_ofEditPart.VISUAL_ID)); } return result; } }