package es.tid.cim.diagram.providers; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.ModelingAssistantProvider; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.dialogs.ElementListSelectionDialog; import es.tid.cim.diagram.edit.parts.AFServiceEditPart; import es.tid.cim.diagram.edit.parts.AdminDomainEditPart; import es.tid.cim.diagram.edit.parts.AdministrativeDistanceEditPart; import es.tid.cim.diagram.edit.parts.AutonomousSystemEditPart; import es.tid.cim.diagram.edit.parts.BGPClusterEditPart; import es.tid.cim.diagram.edit.parts.BGPPeerGroupEditPart; import es.tid.cim.diagram.edit.parts.BGPServiceEditPart; import es.tid.cim.diagram.edit.parts.CIM_ModelEditPart; import es.tid.cim.diagram.edit.parts.ComputerSystemEditPart; import es.tid.cim.diagram.edit.parts.ConditioningServiceEditPart; import es.tid.cim.diagram.edit.parts.FileSpecificationEditPart; import es.tid.cim.diagram.edit.parts.FilterListEditPart; import es.tid.cim.diagram.edit.parts.LANEndpointEditPart; import es.tid.cim.diagram.edit.parts.LANSegmentEditPart; import es.tid.cim.diagram.edit.parts.LogicalModuleEditPart; import es.tid.cim.diagram.edit.parts.NATListBasedSettingsEditPart; import es.tid.cim.diagram.edit.parts.NATServiceEditPart; import es.tid.cim.diagram.edit.parts.NetworkPortEditPart; import es.tid.cim.diagram.edit.parts.NextHopRoutingEditPart; import es.tid.cim.diagram.edit.parts.OperatingSystemEditPart; import es.tid.cim.diagram.edit.parts.ProductEditPart; import es.tid.cim.diagram.edit.parts.RangeOfIPAddressesEditPart; import es.tid.cim.diagram.edit.parts.RemoteServiceAccessPointEditPart; import es.tid.cim.diagram.edit.parts.RoutingPolicyEditPart; import es.tid.cim.diagram.edit.parts.RoutingProtocolDomainEditPart; import es.tid.cim.diagram.edit.parts.SNMPServiceEditPart; import es.tid.cim.diagram.edit.parts.SoftwareIdentityEditPart; import es.tid.cim.diagram.edit.parts.SystemSpecificCollectionEditPart; import es.tid.cim.diagram.part.CIMLevelZeroDiagramEditorPlugin; import es.tid.cim.diagram.part.Messages; /** * @generated */ public class CIMLevelZeroModelingAssistantProvider extends ModelingAssistantProvider { /** * @generated */ public List getTypesForPopupBar(IAdaptable host) { IGraphicalEditPart editPart = (IGraphicalEditPart) host .getAdapter(IGraphicalEditPart.class); if (editPart instanceof CIM_ModelEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.USBDevice_2001); types.add(CIMLevelZeroElementTypes.OSPFVirtualInterface_2002); types.add(CIMLevelZeroElementTypes.WiFiPort_2003); types.add(CIMLevelZeroElementTypes.ProtocolService_2004); types.add(CIMLevelZeroElementTypes.RoutingPolicy_2005); types .add(CIMLevelZeroElementTypes.EnabledLogicalElementCapabilities_2006); types.add(CIMLevelZeroElementTypes.BufferPool_2007); types.add(CIMLevelZeroElementTypes.MPLSProtocolEndpoint_2008); types.add(CIMLevelZeroElementTypes.AutonomousSystem_2009); types.add(CIMLevelZeroElementTypes.DNSSettingData_2010); types.add(CIMLevelZeroElementTypes.UniModem_2011); types.add(CIMLevelZeroElementTypes.EFService_2012); types.add(CIMLevelZeroElementTypes.IPSubnet_2013); types.add(CIMLevelZeroElementTypes.NamedAddressCollection_2014); types.add(CIMLevelZeroElementTypes.BIOSElement_2015); types.add(CIMLevelZeroElementTypes.TelnetSettingData_2016); types.add(CIMLevelZeroElementTypes.BGPPeerGroup_2017); types.add(CIMLevelZeroElementTypes.LANConnectivitySegment_2018); types.add(CIMLevelZeroElementTypes.CableModem_2019); types.add(CIMLevelZeroElementTypes.SwitchPort_2020); types.add(CIMLevelZeroElementTypes.TCPProtocolEndpoint_2021); types.add(CIMLevelZeroElementTypes.AdministrativeDistance_2022); types.add(CIMLevelZeroElementTypes.IPConnectivitySubnet_2023); types.add(CIMLevelZeroElementTypes.VolatileStorage_2024); types.add(CIMLevelZeroElementTypes.RangeOfIPAddresses_2025); types.add(CIMLevelZeroElementTypes.BGPProtocolEndpoint_2026); types.add(CIMLevelZeroElementTypes.UnitaryComputerSystem_2027); types.add(CIMLevelZeroElementTypes.EthernetPort_2028); types.add(CIMLevelZeroElementTypes.SNMPService_2029); types.add(CIMLevelZeroElementTypes.LogicalModule_2030); types.add(CIMLevelZeroElementTypes.NextHopIPRoute_2031); types.add(CIMLevelZeroElementTypes.OperatingSystem_2032); types.add(CIMLevelZeroElementTypes.SDSLModem_2033); types.add(CIMLevelZeroElementTypes.WiFiEndPoint_2034); types.add(CIMLevelZeroElementTypes.NATService_2035); types.add(CIMLevelZeroElementTypes.ADSLModem_2036); types.add(CIMLevelZeroElementTypes.LogicalFile_2037); types.add(CIMLevelZeroElementTypes.BGPCluster_2038); types.add(CIMLevelZeroElementTypes.ApplicationSystem_2039); types.add(CIMLevelZeroElementTypes.SoftwareIdentity_2040); types.add(CIMLevelZeroElementTypes.WirelessPort_2041); types.add(CIMLevelZeroElementTypes.CLPSettingData_2042); types.add(CIMLevelZeroElementTypes.GenericService_2043); types.add(CIMLevelZeroElementTypes.NATListBasedSettings_2044); types.add(CIMLevelZeroElementTypes.VDSLModem_2045); types.add(CIMLevelZeroElementTypes.USBPort_2046); types.add(CIMLevelZeroElementTypes.DNSProtocolEndpoint_2047); types.add(CIMLevelZeroElementTypes.WiFiEndpointSettings_2048); types.add(CIMLevelZeroElementTypes.SSHSettingData_2049); types.add(CIMLevelZeroElementTypes.WirelessLANEndpoint_2050); types.add(CIMLevelZeroElementTypes.DHCPProtocolEndpoint_2051); types.add(CIMLevelZeroElementTypes.IPHeadersFilter_2052); types.add(CIMLevelZeroElementTypes.Directory_2053); types.add(CIMLevelZeroElementTypes.IPAddressRange_2054); types.add(CIMLevelZeroElementTypes.SNMPTrapTarget_2055); types.add(CIMLevelZeroElementTypes.IPXConnectivityNetwork_2056); types .add(CIMLevelZeroElementTypes.ConnectivityMemberhipSettingData_2057); types.add(CIMLevelZeroElementTypes.ConditioningService_2058); types.add(CIMLevelZeroElementTypes.BIOSFeature_2059); types.add(CIMLevelZeroElementTypes.OSPFProtocolEndpoint_2060); types.add(CIMLevelZeroElementTypes.FilterList_2061); types.add(CIMLevelZeroElementTypes.BGPService_2062); types.add(CIMLevelZeroElementTypes.PrecedenceService_2063); types.add(CIMLevelZeroElementTypes.DHCPCapabilities_2064); types.add(CIMLevelZeroElementTypes.Hdr8021PService_2065); types.add(CIMLevelZeroElementTypes.ReplacementSet_2066); types.add(CIMLevelZeroElementTypes.HDSLModem_2067); types.add(CIMLevelZeroElementTypes.ServiceAccessURI_2068); types.add(CIMLevelZeroElementTypes.FilterEntry_2069); types.add(CIMLevelZeroElementTypes.SNMPCommunityStrings_2070); types.add(CIMLevelZeroElementTypes.Network_2071); types.add(CIMLevelZeroElementTypes.FileSpecification_2072); types.add(CIMLevelZeroElementTypes.IPXNetwork_2073); types .add(CIMLevelZeroElementTypes.PowerManagementCapabilities_2074); types.add(CIMLevelZeroElementTypes.FlowService_2075); types.add(CIMLevelZeroElementTypes.ISDNModem_2076); types.add(CIMLevelZeroElementTypes.IPXProtocolEndpoint_2077); types.add(CIMLevelZeroElementTypes.IPProtocolEndpoint_2078); types.add(CIMLevelZeroElementTypes.UDPProtocolEndpoint_2079); types.add(CIMLevelZeroElementTypes.Product_2080); types.add(CIMLevelZeroElementTypes.MemoryCapacity_2081); types.add(CIMLevelZeroElementTypes.RoutingProtocolDomain_2082); types.add(CIMLevelZeroElementTypes.AFService_2083); types.add(CIMLevelZeroElementTypes.LANSegment_2084); types.add(CIMLevelZeroElementTypes.NATStaticSettings_2085); types.add(CIMLevelZeroElementTypes.TelnetProtocolEndpoint_2086); types.add(CIMLevelZeroElementTypes.LANEndpoint_2087); types .add(CIMLevelZeroElementTypes.DropThresholdCalculationService_2088); types.add(CIMLevelZeroElementTypes.AdminDomain_2089); types.add(CIMLevelZeroElementTypes.SystemSpecificCollection_2090); types.add(CIMLevelZeroElementTypes.NextHopRouting_2091); types.add(CIMLevelZeroElementTypes.ComputerSystem_2092); types.add(CIMLevelZeroElementTypes.NetworkPort_2093); types.add(CIMLevelZeroElementTypes.RemoteServiceAccessPoint_2094); return types; } return Collections.EMPTY_LIST; } /** * @generated */ public List getRelTypesOnSource(IAdaptable source) { IGraphicalEditPart sourceEditPart = (IGraphicalEditPart) source .getAdapter(IGraphicalEditPart.class); if (sourceEditPart instanceof AutonomousSystemEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.AutonomousSystemRouterInAS_4063); types .add(CIMLevelZeroElementTypes.AutonomousSystemRoutingProtocolDomainInAS_4066); return types; } if (sourceEditPart instanceof SNMPServiceEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.SNMPServiceTrapSourceForSNMPService_4070); return types; } if (sourceEditPart instanceof LogicalModuleEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.LogicalModuleModulePort_4038); return types; } if (sourceEditPart instanceof OperatingSystemEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.OperatingSystemOperatingSystemSoftwareFeature_4002); return types; } if (sourceEditPart instanceof NATServiceEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.NATServiceNATServiceRunningOnEndpoint_4058); return types; } if (sourceEditPart instanceof BGPClusterEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.BGPClusterReflectorClientService_4007); types .add(CIMLevelZeroElementTypes.BGPClusterReflectorNonClientService_4008); types.add(CIMLevelZeroElementTypes.BGPClusterReflectorService_4009); types .add(CIMLevelZeroElementTypes.BGPClusterRoutersInBGPCluster_4064); return types; } if (sourceEditPart instanceof SoftwareIdentityEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.SoftwareIdentityElementSoftwareIdentity_4019); return types; } if (sourceEditPart instanceof NATListBasedSettingsEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.NATListBasedSettingsAddressesToBeTranslated_4043); types .add(CIMLevelZeroElementTypes.NATListBasedSettingsTranslationPoolForNAT_4069); return types; } if (sourceEditPart instanceof BGPServiceEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.BGPServiceBGPPeerGroupServices_4006); types.add(CIMLevelZeroElementTypes.BGPServiceBGPAdminDistance_4044); return types; } if (sourceEditPart instanceof ProductEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.ProductProductProductDependency_4025); types .add(CIMLevelZeroElementTypes.ProductProductServiceComponent_4026); return types; } if (sourceEditPart instanceof AFServiceEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.AFServiceAFRelatedServices_4039); return types; } if (sourceEditPart instanceof LANSegmentEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.LANSegmentInSegment_4057); return types; } if (sourceEditPart instanceof AdminDomainEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.AdminDomainContainedDomain_4012); types .add(CIMLevelZeroElementTypes.AdminDomainNetworksInAdminDomain_4059); return types; } if (sourceEditPart instanceof ComputerSystemEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.ComputerSystemHostedFilterList_4051); types .add(CIMLevelZeroElementTypes.ComputerSystemHostedForwardingServices_4052); types .add(CIMLevelZeroElementTypes.ComputerSystemHostedRoutingPolicy_4054); types.add(CIMLevelZeroElementTypes.ComputerSystemRunningOS_4067); return types; } return Collections.EMPTY_LIST; } /** * @generated */ public List getRelTypesOnTarget(IAdaptable target) { IGraphicalEditPart targetEditPart = (IGraphicalEditPart) target .getAdapter(IGraphicalEditPart.class); if (targetEditPart instanceof RoutingPolicyEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.ComputerSystemHostedRoutingPolicy_4054); return types; } if (targetEditPart instanceof BGPPeerGroupEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.BGPServiceBGPPeerGroupServices_4006); return types; } if (targetEditPart instanceof AdministrativeDistanceEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.BGPServiceBGPAdminDistance_4044); return types; } if (targetEditPart instanceof RangeOfIPAddressesEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.NATListBasedSettingsTranslationPoolForNAT_4069); return types; } if (targetEditPart instanceof OperatingSystemEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.ComputerSystemRunningOS_4067); return types; } if (targetEditPart instanceof ConditioningServiceEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.QoSServiceQoSConditioningSubService_4040); types .add(CIMLevelZeroElementTypes.ProtocolEndpointEgressConditioningServiceOnEndpoint_4047); types .add(CIMLevelZeroElementTypes.ProtocolEndpointIngressConditioningServiceOnEndpoint_4055); return types; } if (targetEditPart instanceof FilterListEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.NATListBasedSettingsAddressesToBeTranslated_4043); types .add(CIMLevelZeroElementTypes.ComputerSystemHostedFilterList_4051); return types; } if (targetEditPart instanceof BGPServiceEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.BGPClusterReflectorClientService_4007); types .add(CIMLevelZeroElementTypes.BGPClusterReflectorNonClientService_4008); types.add(CIMLevelZeroElementTypes.BGPClusterReflectorService_4009); return types; } if (targetEditPart instanceof FileSpecificationEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.DirectorySpecificationDirectorySpecificationFiles_4001); return types; } if (targetEditPart instanceof ProductEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.ProductProductProductDependency_4025); return types; } if (targetEditPart instanceof RoutingProtocolDomainEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.AutonomousSystemRoutingProtocolDomainInAS_4066); return types; } if (targetEditPart instanceof AFServiceEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.AFServiceAFRelatedServices_4039); return types; } if (targetEditPart instanceof LANEndpointEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.ServiceAccessPointBindsToLANEndpoint_4045); types.add(CIMLevelZeroElementTypes.LANSegmentInSegment_4057); return types; } if (targetEditPart instanceof AdminDomainEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.AdminDomainContainedDomain_4012); return types; } if (targetEditPart instanceof SystemSpecificCollectionEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.SystemHostedCollection_4021); return types; } if (targetEditPart instanceof NextHopRoutingEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.ForwardingServiceRouteForwardedByService_4062); return types; } if (targetEditPart instanceof ComputerSystemEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.AutonomousSystemRouterInAS_4063); types .add(CIMLevelZeroElementTypes.BGPClusterRoutersInBGPCluster_4064); return types; } if (targetEditPart instanceof NetworkPortEditPart) { List types = new ArrayList(); types.add(CIMLevelZeroElementTypes.LogicalModuleModulePort_4038); return types; } if (targetEditPart instanceof RemoteServiceAccessPointEditPart) { List types = new ArrayList(); types .add(CIMLevelZeroElementTypes.EnabledLogicalElementRemoteAccessAvailableToElement_4027); types .add(CIMLevelZeroElementTypes.NextHopRouteAssociatedNextHop_4071); return types; } return Collections.EMPTY_LIST; } /** * @generated */ public List getRelTypesOnSourceAndTarget(IAdaptable source, IAdaptable target) { IGraphicalEditPart sourceEditPart = (IGraphicalEditPart) source .getAdapter(IGraphicalEditPart.class); IGraphicalEditPart targetEditPart = (IGraphicalEditPart) target .getAdapter(IGraphicalEditPart.class); if (sourceEditPart instanceof AutonomousSystemEditPart) { List types = new ArrayList(); if (targetEditPart instanceof ComputerSystemEditPart) { types .add(CIMLevelZeroElementTypes.AutonomousSystemRouterInAS_4063); } if (targetEditPart instanceof RoutingProtocolDomainEditPart) { types .add(CIMLevelZeroElementTypes.AutonomousSystemRoutingProtocolDomainInAS_4066); } return types; } if (sourceEditPart instanceof SNMPServiceEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof LogicalModuleEditPart) { List types = new ArrayList(); if (targetEditPart instanceof NetworkPortEditPart) { types .add(CIMLevelZeroElementTypes.LogicalModuleModulePort_4038); } return types; } if (sourceEditPart instanceof OperatingSystemEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof NATServiceEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof BGPClusterEditPart) { List types = new ArrayList(); if (targetEditPart instanceof BGPServiceEditPart) { types .add(CIMLevelZeroElementTypes.BGPClusterReflectorClientService_4007); } if (targetEditPart instanceof BGPServiceEditPart) { types .add(CIMLevelZeroElementTypes.BGPClusterReflectorNonClientService_4008); } if (targetEditPart instanceof BGPServiceEditPart) { types .add(CIMLevelZeroElementTypes.BGPClusterReflectorService_4009); } if (targetEditPart instanceof ComputerSystemEditPart) { types .add(CIMLevelZeroElementTypes.BGPClusterRoutersInBGPCluster_4064); } return types; } if (sourceEditPart instanceof SoftwareIdentityEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof NATListBasedSettingsEditPart) { List types = new ArrayList(); if (targetEditPart instanceof FilterListEditPart) { types .add(CIMLevelZeroElementTypes.NATListBasedSettingsAddressesToBeTranslated_4043); } if (targetEditPart instanceof RangeOfIPAddressesEditPart) { types .add(CIMLevelZeroElementTypes.NATListBasedSettingsTranslationPoolForNAT_4069); } return types; } if (sourceEditPart instanceof BGPServiceEditPart) { List types = new ArrayList(); if (targetEditPart instanceof BGPPeerGroupEditPart) { types .add(CIMLevelZeroElementTypes.BGPServiceBGPPeerGroupServices_4006); } if (targetEditPart instanceof AdministrativeDistanceEditPart) { types .add(CIMLevelZeroElementTypes.BGPServiceBGPAdminDistance_4044); } return types; } if (sourceEditPart instanceof ProductEditPart) { List types = new ArrayList(); if (targetEditPart instanceof ProductEditPart) { types .add(CIMLevelZeroElementTypes.ProductProductProductDependency_4025); } return types; } if (sourceEditPart instanceof AFServiceEditPart) { List types = new ArrayList(); if (targetEditPart instanceof AFServiceEditPart) { types .add(CIMLevelZeroElementTypes.AFServiceAFRelatedServices_4039); } return types; } if (sourceEditPart instanceof LANSegmentEditPart) { List types = new ArrayList(); if (targetEditPart instanceof LANEndpointEditPart) { types.add(CIMLevelZeroElementTypes.LANSegmentInSegment_4057); } return types; } if (sourceEditPart instanceof AdminDomainEditPart) { List types = new ArrayList(); if (targetEditPart instanceof AdminDomainEditPart) { types .add(CIMLevelZeroElementTypes.AdminDomainContainedDomain_4012); } return types; } if (sourceEditPart instanceof ComputerSystemEditPart) { List types = new ArrayList(); if (targetEditPart instanceof FilterListEditPart) { types .add(CIMLevelZeroElementTypes.ComputerSystemHostedFilterList_4051); } if (targetEditPart instanceof RoutingPolicyEditPart) { types .add(CIMLevelZeroElementTypes.ComputerSystemHostedRoutingPolicy_4054); } if (targetEditPart instanceof OperatingSystemEditPart) { types .add(CIMLevelZeroElementTypes.ComputerSystemRunningOS_4067); } return types; } return Collections.EMPTY_LIST; } /** * @generated */ public List getTypesForSource(IAdaptable target, IElementType relationshipType) { IGraphicalEditPart targetEditPart = (IGraphicalEditPart) target .getAdapter(IGraphicalEditPart.class); if (targetEditPart instanceof RoutingPolicyEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.ComputerSystemHostedRoutingPolicy_4054) { types.add(CIMLevelZeroElementTypes.ComputerSystem_2092); } return types; } if (targetEditPart instanceof BGPPeerGroupEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.BGPServiceBGPPeerGroupServices_4006) { types.add(CIMLevelZeroElementTypes.BGPService_2062); } return types; } if (targetEditPart instanceof AdministrativeDistanceEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.BGPServiceBGPAdminDistance_4044) { types.add(CIMLevelZeroElementTypes.BGPService_2062); } return types; } if (targetEditPart instanceof RangeOfIPAddressesEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.NATListBasedSettingsTranslationPoolForNAT_4069) { types.add(CIMLevelZeroElementTypes.NATListBasedSettings_2044); } return types; } if (targetEditPart instanceof OperatingSystemEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.ComputerSystemRunningOS_4067) { types.add(CIMLevelZeroElementTypes.ComputerSystem_2092); } return types; } if (targetEditPart instanceof ConditioningServiceEditPart) { List types = new ArrayList(); return types; } if (targetEditPart instanceof FilterListEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.NATListBasedSettingsAddressesToBeTranslated_4043) { types.add(CIMLevelZeroElementTypes.NATListBasedSettings_2044); } if (relationshipType == CIMLevelZeroElementTypes.ComputerSystemHostedFilterList_4051) { types.add(CIMLevelZeroElementTypes.ComputerSystem_2092); } return types; } if (targetEditPart instanceof BGPServiceEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.BGPClusterReflectorClientService_4007) { types.add(CIMLevelZeroElementTypes.BGPCluster_2038); } if (relationshipType == CIMLevelZeroElementTypes.BGPClusterReflectorNonClientService_4008) { types.add(CIMLevelZeroElementTypes.BGPCluster_2038); } if (relationshipType == CIMLevelZeroElementTypes.BGPClusterReflectorService_4009) { types.add(CIMLevelZeroElementTypes.BGPCluster_2038); } return types; } if (targetEditPart instanceof FileSpecificationEditPart) { List types = new ArrayList(); return types; } if (targetEditPart instanceof ProductEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.ProductProductProductDependency_4025) { types.add(CIMLevelZeroElementTypes.Product_2080); } return types; } if (targetEditPart instanceof RoutingProtocolDomainEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AutonomousSystemRoutingProtocolDomainInAS_4066) { types.add(CIMLevelZeroElementTypes.AutonomousSystem_2009); } return types; } if (targetEditPart instanceof AFServiceEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AFServiceAFRelatedServices_4039) { types.add(CIMLevelZeroElementTypes.AFService_2083); } return types; } if (targetEditPart instanceof LANEndpointEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.LANSegmentInSegment_4057) { types.add(CIMLevelZeroElementTypes.LANSegment_2084); } return types; } if (targetEditPart instanceof AdminDomainEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AdminDomainContainedDomain_4012) { types.add(CIMLevelZeroElementTypes.AdminDomain_2089); } return types; } if (targetEditPart instanceof SystemSpecificCollectionEditPart) { List types = new ArrayList(); return types; } if (targetEditPart instanceof NextHopRoutingEditPart) { List types = new ArrayList(); return types; } if (targetEditPart instanceof ComputerSystemEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AutonomousSystemRouterInAS_4063) { types.add(CIMLevelZeroElementTypes.AutonomousSystem_2009); } if (relationshipType == CIMLevelZeroElementTypes.BGPClusterRoutersInBGPCluster_4064) { types.add(CIMLevelZeroElementTypes.BGPCluster_2038); } return types; } if (targetEditPart instanceof NetworkPortEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.LogicalModuleModulePort_4038) { types.add(CIMLevelZeroElementTypes.LogicalModule_2030); } return types; } if (targetEditPart instanceof RemoteServiceAccessPointEditPart) { List types = new ArrayList(); return types; } return Collections.EMPTY_LIST; } /** * @generated */ public List getTypesForTarget(IAdaptable source, IElementType relationshipType) { IGraphicalEditPart sourceEditPart = (IGraphicalEditPart) source .getAdapter(IGraphicalEditPart.class); if (sourceEditPart instanceof AutonomousSystemEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AutonomousSystemRouterInAS_4063) { types.add(CIMLevelZeroElementTypes.ComputerSystem_2092); } if (relationshipType == CIMLevelZeroElementTypes.AutonomousSystemRoutingProtocolDomainInAS_4066) { types.add(CIMLevelZeroElementTypes.RoutingProtocolDomain_2082); } return types; } if (sourceEditPart instanceof SNMPServiceEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof LogicalModuleEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.LogicalModuleModulePort_4038) { types.add(CIMLevelZeroElementTypes.NetworkPort_2093); } return types; } if (sourceEditPart instanceof OperatingSystemEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof NATServiceEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof BGPClusterEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.BGPClusterReflectorClientService_4007) { types.add(CIMLevelZeroElementTypes.BGPService_2062); } if (relationshipType == CIMLevelZeroElementTypes.BGPClusterReflectorNonClientService_4008) { types.add(CIMLevelZeroElementTypes.BGPService_2062); } if (relationshipType == CIMLevelZeroElementTypes.BGPClusterReflectorService_4009) { types.add(CIMLevelZeroElementTypes.BGPService_2062); } if (relationshipType == CIMLevelZeroElementTypes.BGPClusterRoutersInBGPCluster_4064) { types.add(CIMLevelZeroElementTypes.ComputerSystem_2092); } return types; } if (sourceEditPart instanceof SoftwareIdentityEditPart) { List types = new ArrayList(); return types; } if (sourceEditPart instanceof NATListBasedSettingsEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.NATListBasedSettingsAddressesToBeTranslated_4043) { types.add(CIMLevelZeroElementTypes.FilterList_2061); } if (relationshipType == CIMLevelZeroElementTypes.NATListBasedSettingsTranslationPoolForNAT_4069) { types.add(CIMLevelZeroElementTypes.RangeOfIPAddresses_2025); } return types; } if (sourceEditPart instanceof BGPServiceEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.BGPServiceBGPPeerGroupServices_4006) { types.add(CIMLevelZeroElementTypes.BGPPeerGroup_2017); } if (relationshipType == CIMLevelZeroElementTypes.BGPServiceBGPAdminDistance_4044) { types.add(CIMLevelZeroElementTypes.AdministrativeDistance_2022); } return types; } if (sourceEditPart instanceof ProductEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.ProductProductProductDependency_4025) { types.add(CIMLevelZeroElementTypes.Product_2080); } return types; } if (sourceEditPart instanceof AFServiceEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AFServiceAFRelatedServices_4039) { types.add(CIMLevelZeroElementTypes.AFService_2083); } return types; } if (sourceEditPart instanceof LANSegmentEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.LANSegmentInSegment_4057) { types.add(CIMLevelZeroElementTypes.LANEndpoint_2087); } return types; } if (sourceEditPart instanceof AdminDomainEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.AdminDomainContainedDomain_4012) { types.add(CIMLevelZeroElementTypes.AdminDomain_2089); } return types; } if (sourceEditPart instanceof ComputerSystemEditPart) { List types = new ArrayList(); if (relationshipType == CIMLevelZeroElementTypes.ComputerSystemHostedFilterList_4051) { types.add(CIMLevelZeroElementTypes.FilterList_2061); } if (relationshipType == CIMLevelZeroElementTypes.ComputerSystemHostedRoutingPolicy_4054) { types.add(CIMLevelZeroElementTypes.RoutingPolicy_2005); } if (relationshipType == CIMLevelZeroElementTypes.ComputerSystemRunningOS_4067) { types.add(CIMLevelZeroElementTypes.OperatingSystem_2032); } return types; } return Collections.EMPTY_LIST; } /** * @generated */ public EObject selectExistingElementForSource(IAdaptable target, IElementType relationshipType) { return selectExistingElement(target, getTypesForSource(target, relationshipType)); } /** * @generated */ public EObject selectExistingElementForTarget(IAdaptable source, IElementType relationshipType) { return selectExistingElement(source, getTypesForTarget(source, relationshipType)); } /** * @generated */ protected EObject selectExistingElement(IAdaptable host, Collection types) { if (types.isEmpty()) { return null; } IGraphicalEditPart editPart = (IGraphicalEditPart) host .getAdapter(IGraphicalEditPart.class); if (editPart == null) { return null; } Diagram diagram = (Diagram) editPart.getRoot().getContents().getModel(); Collection elements = new HashSet(); for (Iterator it = diagram.getElement().eAllContents(); it.hasNext();) { EObject element = (EObject) it.next(); if (isApplicableElement(element, types)) { elements.add(element); } } if (elements.isEmpty()) { return null; } return selectElement((EObject[]) elements.toArray(new EObject[elements .size()])); } /** * @generated */ protected boolean isApplicableElement(EObject element, Collection types) { IElementType type = ElementTypeRegistry.getInstance().getElementType( element); return types.contains(type); } /** * @generated */ protected EObject selectElement(EObject[] elements) { Shell shell = Display.getCurrent().getActiveShell(); ILabelProvider labelProvider = new AdapterFactoryLabelProvider( CIMLevelZeroDiagramEditorPlugin.getInstance() .getItemProvidersAdapterFactory()); ElementListSelectionDialog dialog = new ElementListSelectionDialog( shell, labelProvider); dialog .setMessage(Messages.CIMLevelZeroModelingAssistantProviderMessage); dialog.setTitle(Messages.CIMLevelZeroModelingAssistantProviderTitle); dialog.setMultipleSelection(false); dialog.setElements(elements); EObject selected = null; if (dialog.open() == Window.OK) { selected = (EObject) dialog.getFirstResult(); } return selected; } }