package org.eclipse.uml2.diagram.clazz.links; import java.util.Collection; import org.eclipse.gmf.runtime.notation.Edge; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.uml2.diagram.clazz.edit.parts.InterfaceRealizationEditPart; import org.eclipse.uml2.diagram.clazz.edit.parts.PortProvidedEditPart; import org.eclipse.uml2.diagram.clazz.edit.parts.PortRequiredEditPart; import org.eclipse.uml2.diagram.clazz.edit.parts.UsageEditPart; import org.eclipse.uml2.diagram.clazz.part.UMLDiagramUpdater; import org.eclipse.uml2.diagram.clazz.part.UMLLinkDescriptor; import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry; import org.eclipse.uml2.diagram.clazz.providers.UMLElementTypes; import org.eclipse.uml2.diagram.common.genapi.IUpdaterLinkDescriptor; import org.eclipse.uml2.diagram.common.links.ILinkDetector; import org.eclipse.uml2.diagram.common.links.RefreshComplementaryLinksHelper.IDiagramLinkInfoProvider; import org.eclipse.uml2.uml.Classifier; import org.eclipse.uml2.uml.Interface; import org.eclipse.uml2.uml.InterfaceRealization; import org.eclipse.uml2.uml.Usage; public class DiagramLinkInfoProvider implements IDiagramLinkInfoProvider { private static final DiagramLinkInfoProvider INSTANCE = new DiagramLinkInfoProvider(); private final ILinkDetector myLinkDetector; private DiagramLinkInfoProvider() { myLinkDetector = new LinkDetector(); } public static DiagramLinkInfoProvider getInstance() { return INSTANCE; } @SuppressWarnings("unchecked") public Collection<? extends IUpdaterLinkDescriptor> getContainedLinks(View view) { return UMLDiagramUpdater.TYPED_ADAPTER.getContainedLinks(view); } public String getType(int visualId) { return UMLVisualIDRegistry.getType(visualId); } public boolean hasVisualId(Edge edge, int visualId) { return UMLVisualIDRegistry.getVisualID(edge) == visualId; } public boolean isInterfaceRealizationEdge(Edge edge) { return UMLVisualIDRegistry.getVisualID(edge) == InterfaceRealizationEditPart.VISUAL_ID; } public boolean isPortProvidedEdge(Edge edge) { return UMLVisualIDRegistry.getVisualID(edge) == PortProvidedEditPart.VISUAL_ID; } public boolean isPortRequiredEdge(Edge edge) { return UMLVisualIDRegistry.getVisualID(edge) == PortRequiredEditPart.VISUAL_ID; } public boolean isUsageEdge(Edge edge) { return UMLVisualIDRegistry.getVisualID(edge) == UsageEditPart.VISUAL_ID; } public IUpdaterLinkDescriptor createInterfaceRealizationLinkDescriptor(Classifier source, Interface target, InterfaceRealization link) { return new UMLLinkDescriptor(source, target, link, UMLElementTypes.InterfaceRealization_4008, InterfaceRealizationEditPart.VISUAL_ID); } public IUpdaterLinkDescriptor createUsageLinkDescriptor(Classifier source, Interface target, Usage link) { return new UMLLinkDescriptor(source, target, link, UMLElementTypes.Usage_4013, UsageEditPart.VISUAL_ID); } public ILinkDetector getLinkDetector() { return myLinkDetector; } }