API EMF/UML и OCL для Scala

Часть приложения, которое я разрабатываю на Scala, должна читать и анализировать модели EMF/UML вместе с выражениями OCL, определенными для этих моделей. Мои выражения OCL в значительной степени представляют собой выражения запросов, определенные для этих моделей EMT/UML.

Мои вопросы:

1) Каковы параметры API для чтения и анализа моделей EMF/UML?

2) Каковы параметры API для анализа и оценки выражений OCL (запросов) по моделям EMF/UML.


person qartal    schedule 30.04.2015    source источник


Ответы (1)


Чтобы начать работу с EMF и UML, вам нужна как минимум зависимость от следующих jar-файлов:

  • org.eclipse.emf.common
  • org.eclipse.emf.ecore
  • org.eclipse.uml2.uml

Затем вы можете загрузить свою первую модель EMF с помощью следующего кода:

File file = new File("path")
ResourceSet resourceSet = new ResourceSetImpl();

// Register the various metamodels that will be used, here we are using UML
resourceSet.getPackageResgitry().put(UMLPackage.NS_URI, UMLPackage.eINSTANCE);

// Load the resource
URI uri = URI.createFileURI(file.getAbsolutePath());
Resource resource = resourceSet.getResource(uri, false);

// Iterate on the content of the whole resource
TreeIterator<EObject> iterator = resource.getAllContents();
while (iterator.hasNext()) {
    EObject eObject = iterator.next();
}

Разбор и оценка кода OCL для EObjects (базовый элемент EMF) будет немного сложнее, вы можете посмотреть документацию OCL и вики для получения дополнительной информации: https://wiki.eclipse.org/OCL#Пример_кода

person sbegaudeau    schedule 30.04.2015