package org.eclipse.gmf.examples.ocldriven.toe.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.examples.ocldriven.toe.AllBase; import org.eclipse.gmf.examples.ocldriven.toe.AllHolder; import org.eclipse.gmf.examples.ocldriven.toe.Contribution; import org.eclipse.gmf.examples.ocldriven.toe.Department; import org.eclipse.gmf.examples.ocldriven.toe.Employee; import org.eclipse.gmf.examples.ocldriven.toe.Manager; import org.eclipse.gmf.examples.ocldriven.toe.Project; import org.eclipse.gmf.examples.ocldriven.toe.TOEPackage; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.AllHolderEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.ContributionEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.Department2EditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.DepartmentDepartment_staff2EditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.DepartmentDepartment_staffEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.DepartmentEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.Employee2EditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.EmployeeEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.ManagerEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.ManagerLeadsEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.ManagerManagedDepartmentEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts.ProjectEditPart; import org.eclipse.gmf.examples.ocldriven.toe.diagram.providers.TOEElementTypes; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.gmf.tooling.runtime.update.DiagramUpdater; /** * @generated */ public class TOEDiagramUpdater { /** * @generated */ public static List<TOENodeDescriptor> getSemanticChildren(View view) { switch (TOEVisualIDRegistry.getVisualID(view)) { case AllHolderEditPart.VISUAL_ID: return getAllHolder_1000SemanticChildren(view); case DepartmentDepartment_staffEditPart.VISUAL_ID: return getDepartmentDepartment_staff_7001SemanticChildren(view); case DepartmentDepartment_staff2EditPart.VISUAL_ID: return getDepartmentDepartment_staff_7002SemanticChildren(view); } return Collections.emptyList(); } /** * @generated */ public static List<TOENodeDescriptor> getAllHolder_1000SemanticChildren(View view) { if (!view.isSetElement()) { return Collections.emptyList(); } AllHolder modelElement = (AllHolder) view.getElement(); LinkedList<TOENodeDescriptor> result = new LinkedList<TOENodeDescriptor>(); for (Iterator<?> it = modelElement.getAll().iterator(); it.hasNext();) { AllBase childElement = (AllBase) it.next(); int visualID = TOEVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == EmployeeEditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } if (visualID == DepartmentEditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } if (visualID == ProjectEditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } if (visualID == ManagerEditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<TOENodeDescriptor> getDepartmentDepartment_staff_7001SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Department modelElement = (Department) containerView.getElement(); LinkedList<TOENodeDescriptor> result = new LinkedList<TOENodeDescriptor>(); for (Iterator<?> it = modelElement.getEmployees().iterator(); it.hasNext();) { Employee childElement = (Employee) it.next(); int visualID = TOEVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == Employee2EditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getSubDepartments().iterator(); it.hasNext();) { Department childElement = (Department) it.next(); int visualID = TOEVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == Department2EditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<TOENodeDescriptor> getDepartmentDepartment_staff_7002SemanticChildren(View view) { if (false == view.eContainer() instanceof View) { return Collections.emptyList(); } View containerView = (View) view.eContainer(); if (!containerView.isSetElement()) { return Collections.emptyList(); } Department modelElement = (Department) containerView.getElement(); LinkedList<TOENodeDescriptor> result = new LinkedList<TOENodeDescriptor>(); for (Iterator<?> it = modelElement.getEmployees().iterator(); it.hasNext();) { Employee childElement = (Employee) it.next(); int visualID = TOEVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == Employee2EditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } } for (Iterator<?> it = modelElement.getSubDepartments().iterator(); it.hasNext();) { Department childElement = (Department) it.next(); int visualID = TOEVisualIDRegistry.getNodeVisualID(view, childElement); if (visualID == Department2EditPart.VISUAL_ID) { result.add(new TOENodeDescriptor(childElement, visualID)); continue; } } return result; } /** * @generated */ public static List<TOELinkDescriptor> getContainedLinks(View view) { switch (TOEVisualIDRegistry.getVisualID(view)) { case AllHolderEditPart.VISUAL_ID: return getAllHolder_1000ContainedLinks(view); case EmployeeEditPart.VISUAL_ID: return getEmployee_2001ContainedLinks(view); case DepartmentEditPart.VISUAL_ID: return getDepartment_2002ContainedLinks(view); case ProjectEditPart.VISUAL_ID: return getProject_2003ContainedLinks(view); case ManagerEditPart.VISUAL_ID: return getManager_2004ContainedLinks(view); case Employee2EditPart.VISUAL_ID: return getEmployee_3001ContainedLinks(view); case Department2EditPart.VISUAL_ID: return getDepartment_3002ContainedLinks(view); case ContributionEditPart.VISUAL_ID: return getContribution_4003ContainedLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getIncomingLinks(View view) { switch (TOEVisualIDRegistry.getVisualID(view)) { case EmployeeEditPart.VISUAL_ID: return getEmployee_2001IncomingLinks(view); case DepartmentEditPart.VISUAL_ID: return getDepartment_2002IncomingLinks(view); case ProjectEditPart.VISUAL_ID: return getProject_2003IncomingLinks(view); case ManagerEditPart.VISUAL_ID: return getManager_2004IncomingLinks(view); case Employee2EditPart.VISUAL_ID: return getEmployee_3001IncomingLinks(view); case Department2EditPart.VISUAL_ID: return getDepartment_3002IncomingLinks(view); case ContributionEditPart.VISUAL_ID: return getContribution_4003IncomingLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getOutgoingLinks(View view) { switch (TOEVisualIDRegistry.getVisualID(view)) { case EmployeeEditPart.VISUAL_ID: return getEmployee_2001OutgoingLinks(view); case DepartmentEditPart.VISUAL_ID: return getDepartment_2002OutgoingLinks(view); case ProjectEditPart.VISUAL_ID: return getProject_2003OutgoingLinks(view); case ManagerEditPart.VISUAL_ID: return getManager_2004OutgoingLinks(view); case Employee2EditPart.VISUAL_ID: return getEmployee_3001OutgoingLinks(view); case Department2EditPart.VISUAL_ID: return getDepartment_3002OutgoingLinks(view); case ContributionEditPart.VISUAL_ID: return getContribution_4003OutgoingLinks(view); } return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getAllHolder_1000ContainedLinks(View view) { AllHolder modelElement = (AllHolder) view.getElement(); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getContainedTypeModelFacetLinks_Contribution_4003(modelElement)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getEmployee_2001ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getDepartment_2002ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getProject_2003ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getManager_2004ContainedLinks(View view) { Manager modelElement = (Manager) view.getElement(); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Manager_ManagedDepartment_4001(modelElement)); result.addAll(getOutgoingFeatureModelFacetLinks_Manager_Leads_4002(modelElement)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getEmployee_3001ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getDepartment_3002ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getContribution_4003ContainedLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getEmployee_2001IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getDepartment_2002IncomingLinks(View view) { Department modelElement = (Department) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Manager_ManagedDepartment_4001(modelElement, crossReferences)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getProject_2003IncomingLinks(View view) { Project modelElement = (Project) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Manager_Leads_4002(modelElement, crossReferences)); result.addAll(getIncomingTypeModelFacetLinks_Contribution_4003(modelElement, crossReferences)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getManager_2004IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getEmployee_3001IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getDepartment_3002IncomingLinks(View view) { Department modelElement = (Department) view.getElement(); Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getIncomingFeatureModelFacetLinks_Manager_ManagedDepartment_4001(modelElement, crossReferences)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getContribution_4003IncomingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getEmployee_2001OutgoingLinks(View view) { Employee modelElement = (Employee) view.getElement(); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getOutgoingTypeModelFacetLinks_Contribution_4003(modelElement)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getDepartment_2002OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getProject_2003OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getManager_2004OutgoingLinks(View view) { Manager modelElement = (Manager) view.getElement(); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getOutgoingFeatureModelFacetLinks_Manager_ManagedDepartment_4001(modelElement)); result.addAll(getOutgoingFeatureModelFacetLinks_Manager_Leads_4002(modelElement)); result.addAll(getOutgoingTypeModelFacetLinks_Contribution_4003(modelElement)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getEmployee_3001OutgoingLinks(View view) { Employee modelElement = (Employee) view.getElement(); LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); result.addAll(getOutgoingTypeModelFacetLinks_Contribution_4003(modelElement)); return result; } /** * @generated */ public static List<TOELinkDescriptor> getDepartment_3002OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ public static List<TOELinkDescriptor> getContribution_4003OutgoingLinks(View view) { return Collections.emptyList(); } /** * @generated */ private static Collection<TOELinkDescriptor> getContainedTypeModelFacetLinks_Contribution_4003(AllHolder container) { LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); for (Iterator<?> links = container.getAll().iterator(); links.hasNext();) { EObject linkObject = (EObject) links.next(); if (false == linkObject instanceof Contribution) { continue; } Contribution link = (Contribution) linkObject; if (ContributionEditPart.VISUAL_ID != TOEVisualIDRegistry.getLinkWithClassVisualID(link)) { continue; } Project dst = link.getProject(); Employee src = link.getEmployee(); result.add(new TOELinkDescriptor(src, dst, link, TOEElementTypes.Contribution_4003, ContributionEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<TOELinkDescriptor> getIncomingFeatureModelFacetLinks_Manager_ManagedDepartment_4001(Department target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences.get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() == TOEPackage.eINSTANCE.getManager_ManagedDepartment()) { result.add(new TOELinkDescriptor(setting.getEObject(), target, TOEElementTypes.ManagerManagedDepartment_4001, ManagerManagedDepartmentEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<TOELinkDescriptor> getIncomingFeatureModelFacetLinks_Manager_Leads_4002(Project target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences.get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() == TOEPackage.eINSTANCE.getManager_Leads()) { result.add(new TOELinkDescriptor(setting.getEObject(), target, TOEElementTypes.ManagerLeads_4002, ManagerLeadsEditPart.VISUAL_ID)); } } return result; } /** * @generated */ private static Collection<TOELinkDescriptor> getIncomingTypeModelFacetLinks_Contribution_4003(Project target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) { LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); Collection<EStructuralFeature.Setting> settings = crossReferences.get(target); for (EStructuralFeature.Setting setting : settings) { if (setting.getEStructuralFeature() != TOEPackage.eINSTANCE.getContribution_Project() || false == setting.getEObject() instanceof Contribution) { continue; } Contribution link = (Contribution) setting.getEObject(); if (ContributionEditPart.VISUAL_ID != TOEVisualIDRegistry.getLinkWithClassVisualID(link)) { continue; } Employee src = link.getEmployee(); result.add(new TOELinkDescriptor(src, target, link, TOEElementTypes.Contribution_4003, ContributionEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<TOELinkDescriptor> getOutgoingFeatureModelFacetLinks_Manager_ManagedDepartment_4001(Manager source) { LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); Department destination = source.getManagedDepartment(); if (destination == null) { return result; } result.add(new TOELinkDescriptor(source, destination, TOEElementTypes.ManagerManagedDepartment_4001, ManagerManagedDepartmentEditPart.VISUAL_ID)); return result; } /** * @generated */ private static Collection<TOELinkDescriptor> getOutgoingFeatureModelFacetLinks_Manager_Leads_4002(Manager source) { LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); for (Iterator<?> destinations = source.getLeads().iterator(); destinations.hasNext();) { Project destination = (Project) destinations.next(); result.add(new TOELinkDescriptor(source, destination, TOEElementTypes.ManagerLeads_4002, ManagerLeadsEditPart.VISUAL_ID)); } return result; } /** * @generated */ private static Collection<TOELinkDescriptor> getOutgoingTypeModelFacetLinks_Contribution_4003(Employee source) { AllHolder 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 AllHolder) { container = (AllHolder) element; } } if (container == null) { return Collections.emptyList(); } LinkedList<TOELinkDescriptor> result = new LinkedList<TOELinkDescriptor>(); for (Iterator<?> links = container.getAll().iterator(); links.hasNext();) { EObject linkObject = (EObject) links.next(); if (false == linkObject instanceof Contribution) { continue; } Contribution link = (Contribution) linkObject; if (ContributionEditPart.VISUAL_ID != TOEVisualIDRegistry.getLinkWithClassVisualID(link)) { continue; } Project dst = link.getProject(); Employee src = link.getEmployee(); if (src != source) { continue; } result.add(new TOELinkDescriptor(src, dst, link, TOEElementTypes.Contribution_4003, ContributionEditPart.VISUAL_ID)); } return result; } /** * @generated */ public static final DiagramUpdater TYPED_INSTANCE = new DiagramUpdater() { /** * @generated */ @Override public List<TOENodeDescriptor> getSemanticChildren(View view) { return TOEDiagramUpdater.getSemanticChildren(view); } /** * @generated */ @Override public List<TOELinkDescriptor> getContainedLinks(View view) { return TOEDiagramUpdater.getContainedLinks(view); } /** * @generated */ @Override public List<TOELinkDescriptor> getIncomingLinks(View view) { return TOEDiagramUpdater.getIncomingLinks(view); } /** * @generated */ @Override public List<TOELinkDescriptor> getOutgoingLinks(View view) { return TOEDiagramUpdater.getOutgoingLinks(view); } }; }