私が Scala で開発しているアプリケーションの一部は、EMF/UML モデルと、これらのモデルに対して定義された OCL 式を読み取って解析する必要があります。私の OCL 式は、これらの EMT/UML モデルに対して定義されたほとんどのクエリ式です。
私の質問:
1) EMF/UML モデルを読み取って解析するための API オプションは何ですか?
2) EMF/UML モデルで OCL 式 (クエリ) を解析および評価するための API オプションは何ですか。
私が Scala で開発しているアプリケーションの一部は、EMF/UML モデルと、これらのモデルに対して定義された OCL 式を読み取って解析する必要があります。私の OCL 式は、これらの EMT/UML モデルに対して定義されたほとんどのクエリ式です。
私の質問:
1) EMF/UML モデルを読み取って解析するための API オプションは何ですか?
2) EMF/UML モデルで OCL 式 (クエリ) を解析および評価するための API オプションは何ですか。
EMF と UML を使い始めるには、少なくとも次の jar への依存関係が必要です。
次に、次のコードを使用して最初の 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 (EMF 基本要素) での OCL コードの解析と評価はもう少し複雑になります。詳細については、OCL のドキュメントと wiki を参照してください: https://wiki.eclipse.org/OCL#Example_Code