2016-07-01 16 views
0

私は基本的なファミリ用のecoreファイルを作成しました。モデル、編集、エディタのコードを生成しました。実行時間。しかし、私はそのモデルファイルを読み込んで、ファミリモデルファイルに格納された直列化オブジェクトを取得したい。モデルファイルに保存されたシリアライズされたオブジェクトを読み取る方法

モデルファイルは、種類

?xmlのバージョン= "1.0" エンコード= "UTF-8" のでしょうか?

答えて

0

これは一般的なEMFの質問です(つまり、シリウス関連ではありません)。 EMFを初めてお使いの方は、thisを参照してください。特に、this PDFは、 "EMF book"のサンプルの章であり、フレームワークの概要を示しています。特に、というオブジェクトの永続性というセクションは、あなたの質問に答える必要があります(特に、リソース/モデルをメモリにロードする方法を示す31ページのコードスニペット)。

0

あなたは基本的な家族のメタモデルを持っていて、そのモデル、編集、エディタのコードを生成している場合、あなたはそれから「.basicfamily」モデルを作成した場合、あなたは、コードのこの部分を使用してそれを読むことができれば:

URI uri = URI.createURI(new File("path of your file").getAbsolutePath()); 
ResourceSet resourceSet = new ResourceSetImpl(); 
resourceSet.getPackageRegistry().put(BasicfamilyPackage.eNS_URI, BasicfamilyPackage.eINSTANCE); 
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("basicfamily", new XMIResourceFactoryImpl()); 
Resource resource = resourceSet.getResource(uri, true); 
List<EObject> contents = resource.getContents(); 
// now you can iterate on the root objects of your model, use EObject#getContents() to 
// retrieve the children of an EObject and thus navigate in your data 

メタコードがインストールされたEclipseプラグインでこのコードが実行されている場合、このコードの一部は必要ありません(パッケージレジストリに基本ファミリのEPackageを追加し、リソースファクトリの登録)。生成されたプロジェクトのplugin.xmlによって処理されます。

関連する問題