The UML Diagram Resource API consists of a single static utility class, {@link com.ibm.xtools.umlviz.ui.UMLDiagramResourceUtil UMLDiagramResourceUtil}, and of several other classes and interfaces that are accessible from UMLDiagramResourceUtil. The implementation of these other classes and interfaces spans several plug-ins in the product. These plug-ins are re-exported from the plug-in that exposes UMLDiagramResourceUtil, which is com.ibm.xtools.viz.ui. To use the UML Diagram Resource extensibility, API clients must only add a single plug-in dependency to com.ibm.xtools.viz.ui.
The foundation of the UML Diagram Resource extensibility is called the modeling platform. The modeling platform consists of a set of services that enable the management of UML 2.0 models and is based on a UML 2.0 meta-model that the Eclipse UML2 Project provides. Because the meta-model is an EMF-based implementation of the UML 2.0 specification, the objects that represent user models are UML2 objects.
For diagraming, the UML Modeler leverages the runtime of the Eclipse GMF project.
For example, {@link com.ibm.xtools.umlviz.ui.UMLDiagramResourceUtil#openDiagram UMLDiagramResourceUtil.openDiagram} returns a GMF {@link org.eclipse.gmf.runtime.notation.Diagram Diagram}. This object contains {@link org.eclipse.gmf.runtime.notation.View view} objects through its {@link org.eclipse.gmf.runtime.notation.View#getChildren getChildren} method. Each view can be associated with a semantic element. In case of our UML Modeler diagrams, these semantic elements are UML2 {@link org.eclipse.uml2.uml.Element Element} and are accessible from the {@link org.eclipse.gmf.runtime.notation.View#getElement View.getElement} method.
Like all UML2 objects, Element indirectly extends the {@link org.eclipse.emf.ecore.EModelElement EModelElement} EMF object.
The modeling platform exposes interfaces to help manage notation-based diagrams: