package org.eclipse.uml2.diagram.profile.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 org.eclipse.uml2.diagram.common.genapi.IDiagramUpdater; import org.eclipse.uml2.diagram.profile.edit.parts.CommentAnnotatedElementEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.CommentEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.Constraint2EditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ConstraintConstrainedElementEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ConstraintEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ElementImport2EditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ElementImportEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.EnumerationEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.EnumerationLiteralEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.EnumerationLiteralsEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ExtensionEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.GeneralizationEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ImageEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.Profile2EditPart; import org.eclipse.uml2.diagram.profile.edit.parts.Profile3EditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ProfileContentsEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ProfileEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.ProfileProfileLabelsEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.PropertyEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.Stereotype2EditPart; import org.eclipse.uml2.diagram.profile.edit.parts.StereotypeAttributesEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.StereotypeConstraintsEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.StereotypeEditPart; import org.eclipse.uml2.diagram.profile.edit.parts.StereotypeImagesEditPart; import org.eclipse.uml2.diagram.profile.providers.UMLElementTypes; import org.eclipse.uml2.uml.Classifier; import org.eclipse.uml2.uml.Comment; import org.eclipse.uml2.uml.Constraint; import org.eclipse.uml2.uml.Element; import org.eclipse.uml2.uml.ElementImport; import org.eclipse.uml2.uml.Enumeration; import org.eclipse.uml2.uml.EnumerationLiteral; import org.eclipse.uml2.uml.Extension; import org.eclipse.uml2.uml.Generalization; import org.eclipse.uml2.uml.Image; import org.eclipse.uml2.uml.Package; import org.eclipse.uml2.uml.PackageableElement; import org.eclipse.uml2.uml.Profile; import org.eclipse.uml2.uml.Property; import org.eclipse.uml2.uml.Stereotype; import org.eclipse.uml2.uml.Type; import org.eclipse.uml2.uml.UMLPackage; /** * @generated */ public class UMLDiagramUpdater { /** * @generated */ public static boolean isShortcutOrphaned(View view) { return !view.isSetElement() || view.getElement() == null || view.getElement().eIsProxy(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getSemanticChildren(View view) { switch (UMLVisualIDRegistry.getVisualID(view)) { case ProfileEditPart.VISUAL_ID: { //We have "dummy" TopLevelNode (with vid = org.eclipse.uml2.diagram.profile.edit.parts.Profile3EditPart.VISUAL_ID). //The only purpose for this node is to be a container for children (imports, etc) //of the "main" diagram figure (that one shown as Canvas). //Also we have modified the VisualIDRegistry#getNodeVisualID() to return //VID = org.eclipse.uml2.diagram.profile.edit.parts.Profile3EditPart.VISUAL_ID, //for the case when top-level view is created for the same semantic element as the canvas view. LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> resultAndHeader = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); resultAndHeader.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(view.getElement(), Profile3EditPart.VISUAL_ID)); resultAndHeader.addAll(getProfile_1000SemanticChildren(view)); return resultAndHeader; } case StereotypeAttributesEditPart.VISUAL_ID: return getStereotypeAttributes_7001SemanticChildren(view); case StereotypeConstraintsEditPart.VISUAL_ID: return getStereotypeConstraints_7002SemanticChildren(view); case StereotypeImagesEditPart.VISUAL_ID: return getStereotypeImages_7006SemanticChildren(view); case ProfileContentsEditPart.VISUAL_ID: return getProfileContents_7003SemanticChildren(view); case EnumerationLiteralsEditPart.VISUAL_ID: return getEnumerationLiterals_7004SemanticChildren(view); case ProfileProfileLabelsEditPart.VISUAL_ID: return getProfileProfile_imports_7005SemanticChildren(view); } return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getStereotypeAttributes_7001SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Stereotype modelElement = (Stereotype) containerView.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getOwnedAttributes().iterator(); it.hasNext();) { Property childElement = (Property) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == PropertyEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getStereotypeConstraints_7002SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Stereotype modelElement = (Stereotype) containerView.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getOwnedRules().iterator(); it.hasNext();) { Constraint childElement = (Constraint) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == ConstraintEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getStereotypeImages_7006SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Stereotype modelElement = (Stereotype) containerView.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getIcons().iterator(); it.hasNext();) { Image childElement = (Image) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == ImageEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getProfileContents_7003SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Profile modelElement = (Profile) containerView.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getPackagedElements().iterator(); it.hasNext();) { PackageableElement childElement = (PackageableElement) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == Stereotype2EditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getEnumerationLiterals_7004SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Enumeration modelElement = (Enumeration) containerView.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getOwnedLiterals().iterator(); it.hasNext();) { EnumerationLiteral childElement = (EnumerationLiteral) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == EnumerationLiteralEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getProfileProfile_imports_7005SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Profile modelElement = (Profile) containerView.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getElementImports().iterator(); it.hasNext();) { ElementImport childElement = (ElementImport) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == ElementImport2EditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> getProfile_1000SemanticChildren(View view) { if (!view.isSetElement()) { return Collections.emptyList(); } Profile modelElement = (Profile) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor>(); for (Iterator<?> it = modelElement.getOwnedStereotypes().iterator(); it.hasNext();) { Stereotype childElement = (Stereotype) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == StereotypeEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getPackagedElements().iterator(); it.hasNext();) { PackageableElement childElement = (PackageableElement) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == Profile2EditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } if (visualID == Constraint2EditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getOwnedTypes().iterator(); it.hasNext();) { Type childElement = (Type) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == EnumerationEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getMetaclassReferences().iterator(); it.hasNext();) { ElementImport childElement = (ElementImport) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == ElementImportEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getOwnedComments().iterator(); it.hasNext();) { Comment childElement = (Comment) it.next(); int visualID = UMLVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == CommentEditPart.VISUAL_ID) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLNodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getContainedLinks(View view) { switch (UMLVisualIDRegistry.getVisualID(view)) { case ProfileEditPart.VISUAL_ID: return getProfile_1000ContainedLinks(view); case StereotypeEditPart.VISUAL_ID: return getStereotype_2001ContainedLinks(view); case Profile2EditPart.VISUAL_ID: return getProfile_2002ContainedLinks(view); case EnumerationEditPart.VISUAL_ID: return getEnumeration_2003ContainedLinks(view); case ElementImportEditPart.VISUAL_ID: return getElementImport_2006ContainedLinks(view); case Profile3EditPart.VISUAL_ID: return getProfile_2007ContainedLinks(view); case Constraint2EditPart.VISUAL_ID: return getConstraint_2008ContainedLinks(view); case CommentEditPart.VISUAL_ID: return getComment_2009ContainedLinks(view); case PropertyEditPart.VISUAL_ID: return getProperty_3001ContainedLinks(view); case ConstraintEditPart.VISUAL_ID: return getConstraint_3008ContainedLinks(view); case ImageEditPart.VISUAL_ID: return getImage_3010ContainedLinks(view); case Stereotype2EditPart.VISUAL_ID: return getStereotype_3003ContainedLinks(view); case EnumerationLiteralEditPart.VISUAL_ID: return getEnumerationLiteral_3005ContainedLinks(view); case ElementImport2EditPart.VISUAL_ID: return getElementImport_3009ContainedLinks(view); case GeneralizationEditPart.VISUAL_ID: return getGeneralization_4001ContainedLinks(view); case ExtensionEditPart.VISUAL_ID: return getExtension_4002ContainedLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getIncomingLinks(View view) { switch (UMLVisualIDRegistry.getVisualID(view)) { case StereotypeEditPart.VISUAL_ID: return getStereotype_2001IncomingLinks(view); case Profile2EditPart.VISUAL_ID: return getProfile_2002IncomingLinks(view); case EnumerationEditPart.VISUAL_ID: return getEnumeration_2003IncomingLinks(view); case ElementImportEditPart.VISUAL_ID: return getElementImport_2006IncomingLinks(view); case Profile3EditPart.VISUAL_ID: return getProfile_2007IncomingLinks(view); case Constraint2EditPart.VISUAL_ID: return getConstraint_2008IncomingLinks(view); case CommentEditPart.VISUAL_ID: return getComment_2009IncomingLinks(view); case PropertyEditPart.VISUAL_ID: return getProperty_3001IncomingLinks(view); case ConstraintEditPart.VISUAL_ID: return getConstraint_3008IncomingLinks(view); case ImageEditPart.VISUAL_ID: return getImage_3010IncomingLinks(view); case Stereotype2EditPart.VISUAL_ID: return getStereotype_3003IncomingLinks(view); case EnumerationLiteralEditPart.VISUAL_ID: return getEnumerationLiteral_3005IncomingLinks(view); case ElementImport2EditPart.VISUAL_ID: return getElementImport_3009IncomingLinks(view); case GeneralizationEditPart.VISUAL_ID: return getGeneralization_4001IncomingLinks(view); case ExtensionEditPart.VISUAL_ID: return getExtension_4002IncomingLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getOutgoingLinks(View view) { switch (UMLVisualIDRegistry.getVisualID(view)) { case StereotypeEditPart.VISUAL_ID: return getStereotype_2001OutgoingLinks(view); case Profile2EditPart.VISUAL_ID: return getProfile_2002OutgoingLinks(view); case EnumerationEditPart.VISUAL_ID: return getEnumeration_2003OutgoingLinks(view); case ElementImportEditPart.VISUAL_ID: return getElementImport_2006OutgoingLinks(view); case Profile3EditPart.VISUAL_ID: return getProfile_2007OutgoingLinks(view); case Constraint2EditPart.VISUAL_ID: return getConstraint_2008OutgoingLinks(view); case CommentEditPart.VISUAL_ID: return getComment_2009OutgoingLinks(view); case PropertyEditPart.VISUAL_ID: return getProperty_3001OutgoingLinks(view); case ConstraintEditPart.VISUAL_ID: return getConstraint_3008OutgoingLinks(view); case ImageEditPart.VISUAL_ID: return getImage_3010OutgoingLinks(view); case Stereotype2EditPart.VISUAL_ID: return getStereotype_3003OutgoingLinks(view); case EnumerationLiteralEditPart.VISUAL_ID: return getEnumerationLiteral_3005OutgoingLinks(view); case ElementImport2EditPart.VISUAL_ID: return getElementImport_3009OutgoingLinks(view); case GeneralizationEditPart.VISUAL_ID: return getGeneralization_4001OutgoingLinks(view); case ExtensionEditPart.VISUAL_ID: return getExtension_4002OutgoingLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getStereotype_2001ContainedLinks(View view) { Stereotype modelElement = (Stereotype) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Generalization_4001(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_2002ContainedLinks(View view) { Profile modelElement = (Profile) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Extension_4002(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getEnumeration_2003ContainedLinks(View view) { Enumeration modelElement = (Enumeration) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Generalization_4001(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getElementImport_2006ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_2007ContainedLinks(View view) { //no links to, from and inside the diagram header return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getConstraint_2008ContainedLinks(View view) { Constraint modelElement = (Constraint) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getComment_2009ContainedLinks(View view) { Comment modelElement = (Comment) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProperty_3001ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getConstraint_3008ContainedLinks(View view) { Constraint modelElement = (Constraint) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getImage_3010ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getStereotype_3003ContainedLinks(View view) { Stereotype modelElement = (Stereotype) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Generalization_4001(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getEnumerationLiteral_3005ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getElementImport_3009ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getGeneralization_4001ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getExtension_4002ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getStereotype_2001IncomingLinks(View view) { Stereotype modelElement = (Stereotype) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingTypeModelFacetLinks_Generalization_4001(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_2002IncomingLinks(View view) { Profile modelElement = (Profile) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getEnumeration_2003IncomingLinks(View view) { Enumeration modelElement = (Enumeration) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingTypeModelFacetLinks_Generalization_4001(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getElementImport_2006IncomingLinks(View view) { ElementImport modelElement = (ElementImport) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingTypeModelFacetLinks_Extension_4002(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_2007IncomingLinks(View view) { //no links to, from and inside the diagram header return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getConstraint_2008IncomingLinks(View view) { Constraint modelElement = (Constraint) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getComment_2009IncomingLinks(View view) { Comment modelElement = (Comment) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProperty_3001IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getConstraint_3008IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getImage_3010IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getStereotype_3003IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getEnumerationLiteral_3005IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getElementImport_3009IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getGeneralization_4001IncomingLinks(View view) { Generalization modelElement = (Generalization) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getExtension_4002IncomingLinks(View view) { Extension modelElement = (Extension) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getIncomingTypeModelFacetLinks_Generalization_4001(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement, crossReferences)); result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement, crossReferences)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getStereotype_2001OutgoingLinks(View view) { Stereotype modelElement = (Stereotype) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Generalization_4001(modelElement)); result.addAll(getOutgoingTypeModelFacetLinks_Extension_4002(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_2002OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getEnumeration_2003OutgoingLinks(View view) { Enumeration modelElement = (Enumeration) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Generalization_4001(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getElementImport_2006OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_2007OutgoingLinks(View view) { //no links to, from and inside the diagram header return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getConstraint_2008OutgoingLinks(View view) { Constraint modelElement = (Constraint) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getComment_2009OutgoingLinks(View view) { Comment modelElement = (Comment) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(modelElement)); return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProperty_3001OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getConstraint_3008OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getImage_3010OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getStereotype_3003OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getEnumerationLiteral_3005OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getElementImport_3009OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getGeneralization_4001OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getExtension_4002OutgoingLinks(View view) { Extension modelElement = (Extension) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Generalization_4001(modelElement)); return result; } /** * @generated */ private static Collection<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getContainedTypeModelFacetLinks_Generalization_4001(Classifier container) { LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); for (Iterator<?> links = container.getGeneralizations().iterator(); links.hasNext();) { EObject linkObject = (EObject) links.next(); if (false == linkObject instanceof Generalization) { continue; } Generalization link = (Generalization) linkObject; if (GeneralizationEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(link)) { continue; } Classifier dst = link.getGeneral(); result.add(new org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor(container, dst, link, UMLElementTypes.Generalization_4001, GeneralizationEditPart.VISUAL_ID)); } return result; } /** * @generated NOT */ private static Collection<UMLLinkDescriptor> getContainedTypeModelFacetLinks_Extension_4002(Package container) { if (false == container instanceof Profile) { return Collections.emptyList(); } Profile profile = (Profile) container; Collection<UMLLinkDescriptor> result = new LinkedList<UMLLinkDescriptor>(); for (Extension link : profile.getOwnedExtensions(false)) { if (ExtensionEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(link)) { continue; } Stereotype stereotype = link.getStereotype(); Classifier metaclass = link.getMetaclass(); ElementImport metaclassImport = profile.getElementImport(metaclass, false); if (stereotype != null && metaclassImport != null) { result.add(new UMLLinkDescriptor(stereotype, metaclassImport, link, UMLElementTypes.Extension_4002, ExtensionEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getIncomingTypeModelFacetLinks_Generalization_4001(Classifier target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences.get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() != UMLPackage.eINSTANCE.getGeneralization_General() || false == setting.getEObject() instanceof Generalization) { continue; } Generalization link = (Generalization) setting.getEObject(); if (GeneralizationEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(link)) { continue; } if (false == link.eContainer() instanceof Classifier) { continue; } Classifier container = (Classifier) link.eContainer(); result.add(new org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor(container, target, link, UMLElementTypes.Generalization_4001, GeneralizationEditPart.VISUAL_ID)); } return result; } /** * @generated NOT */ private static Collection<UMLLinkDescriptor> getIncomingTypeModelFacetLinks_Extension_4002(ElementImport target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { if (false == target.getImportedElement() instanceof org.eclipse.uml2.uml.Class) { return Collections.emptyList(); } org.eclipse.uml2.uml.Class metaclass = (org.eclipse.uml2.uml.Class) target.getImportedElement(); if (!metaclass.isMetaclass()) { return Collections.emptyList(); } Collection<UMLLinkDescriptor> result = new LinkedList<UMLLinkDescriptor>(); for (Extension nextLink : metaclass.getExtensions()) { if (ExtensionEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(nextLink)) { continue; } Stereotype nextStereotype = nextLink.getStereotype(); result.add(new UMLLinkDescriptor(nextStereotype, target, nextLink, UMLElementTypes.Extension_4002, ExtensionEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(Element target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences.get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() == UMLPackage.eINSTANCE.getConstraint_ConstrainedElement()) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor(setting.getEObject(), target, UMLElementTypes.ConstraintConstrainedElement_4003, ConstraintConstrainedElementEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(Element target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences.get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() == UMLPackage.eINSTANCE.getComment_AnnotatedElement()) { result.add(new org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor(setting.getEObject(), target, UMLElementTypes.CommentAnnotatedElement_4004, CommentAnnotatedElementEditPart.VISUAL_ID)); } } return result; } /** * @generated NOT */ private static Collection<UMLLinkDescriptor> getOutgoingTypeModelFacetLinks_Extension_4002(Stereotype source) { Profile profile = source.getProfile(); if (profile == null) { return Collections.emptyList(); } //we need link object, we can not just use source.getExtendedMetaclasses() Collection<UMLLinkDescriptor> result = new LinkedList<UMLLinkDescriptor>(); for (Extension nextLink : profile.getOwnedExtensions(false)) { if (ExtensionEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(nextLink)) { continue; } if (!source.equals(nextLink.getStereotype())) { continue; } Classifier metaclass = nextLink.getMetaclass(); ElementImport metaclassImport = profile.getElementImport(metaclass, false); if (metaclassImport != null) { result.add(new UMLLinkDescriptor(source, metaclassImport, nextLink, UMLElementTypes.Extension_4002, ExtensionEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getOutgoingFeatureModelFacetLinks_Constraint_ConstrainedElement_4003(Constraint source) { LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); for (Iterator<?> destinations = source.getConstrainedElements().iterator(); destinations.hasNext();) { Element destination = (Element) destinations.next(); result.add(new org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor(source, destination, UMLElementTypes.ConstraintConstrainedElement_4003, ConstraintConstrainedElementEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getOutgoingFeatureModelFacetLinks_Comment_AnnotatedElement_4004(Comment source) { LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); for (Iterator<?> destinations = source.getAnnotatedElements().iterator(); destinations.hasNext();) { Element destination = (Element) destinations.next(); result.add(new org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor(source, destination, UMLElementTypes.CommentAnnotatedElement_4004, CommentAnnotatedElementEditPart.VISUAL_ID)); } return result; } /** * @generated */ public static List<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> getProfile_1000ContainedLinks(View view) { Profile modelElement = (Profile) view.getElement(); LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor> result = new LinkedList<org.eclipse.uml2.diagram.profile.part.UMLLinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Extension_4002(modelElement)); return result; } /** * @generated */ public static final IDiagramUpdater TYPED_ADAPTER = new IDiagramUpdater() { /** * @generated */ public List<UMLNodeDescriptor> getSemanticChildren(View view) { return org.eclipse.uml2.diagram.profile.part.UMLDiagramUpdater.getSemanticChildren(view); } /** * @generated */ public List<UMLLinkDescriptor> getContainedLinks(View view) { return org.eclipse.uml2.diagram.profile.part.UMLDiagramUpdater.getContainedLinks(view); } /** * @generated */ public List<UMLLinkDescriptor> getIncomingLinks(View view) { return org.eclipse.uml2.diagram.profile.part.UMLDiagramUpdater.getIncomingLinks(view); } /** * @generated */ public List<UMLLinkDescriptor> getOutgoingLinks(View view) { return org.eclipse.uml2.diagram.profile.part.UMLDiagramUpdater.getOutgoingLinks(view); } }; }