The UML Modeler API consists of a single static utility class, {@link com.ibm.xtools.modeler.UMLModeler UMLModeler}, and of several other classes and interfaces that are accessible from UMLModeler. 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 UMLModeler, which is com.ibm.xtools.modeler. To use the UML Modeler extensibility, API clients must only add a single plug-in dependency to com.ibm.xtools.modeler.
The foundation of the UML Modeler 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 example, {@link com.ibm.xtools.modeler.UMLModeler#openModel UMLModeler.openModel} returns a UML2 object {@link org.eclipse.uml2.Model Model}. Like all UML2 objects, Model indirectly extends the {@link org.eclipse.emf.ecore.EModelElement EModelElement} EMF object.The modeling platform includes a set of subsystems that offer services for EMF-based models such as the UML 2.0 meta-model. The most important of these services, the Modeling Services Layer (MSL), enables controlled access to EMF models through its {@link com.ibm.xtools.emf.msl.EditingDomain EditingDomain}.
The following modeling platform services are also available for EMF-based models:
The modeling platform also exposes interfaces to manage UML2 models and notation-based diagrams: