UML Model Implementation Using EMF

Starting from version 17.0, a UML model is implemented using Eclipse Modeling Framework (EMF), that is the UML model is an EMF model. All UML model classes implement the org.eclipse.emf.ecore.EObject interface. The UML model can be accessed and changed using the EMF API. For example:

// get project model
Package model = project.getPrimaryModel();
// create session
SessionManager.getInstance().createSession(project, "create class");
 
 
// get name attribute
EAttribute element_name = UMLPackage.eINSTANCE.getNamedElement_Name();
// get name value (same as model.getName())
Object name = model.eGet(element_name);
System.out.println("name = " + name);
// change name value (same as model.setName(name + "_1");)
model.eSet(element_name, name + "_1");
 
 
Class aClass = UMLFactory.eINSTANCE.createClass();
 
 
// get packaged element collection
Collection collection = (Collection)
model.eGet(UMLPackage.eINSTANCE.getPackage_PackagedElement());
// add new class (same result as model.getPackagedElement().add(aClass))
collection.add(aClass);
 
 
// close session
SessionManager.getInstance().closeSession(project);