2015-04-30 25 views
1

我在Scala中开发的应用程序的一部分需要读取和解析EMF/UML模型以及在这些模型上定义的OCL表达式。我的OCL表达式几乎是在这些EMT/UML模型上定义的查询表达式。Scala的EMF/UML和OCL API

我的问题:

1)什么是为了读取和解析EMF/UML模型API选项?

2)为了在EMF/UML模型上解析和评估OCL表达式(查询),什么是API选项。

回答

1

要开始使用EMF和UML,你至少需要依赖于以下罐子:

  • 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(); 
} 

解析和评估EObjects OCL代码(EMF基本元素)会比较复杂一点,你可以看看OCL的文档和wiki以了解更多信息:https://wiki.eclipse.org/OCL#Example_Code