私はいくつかのeclipse emfコードを書いており、EObjectの内容を印刷したい(ディスクに保存しない)。ここでEObjectを印刷しますか?
は私がしようとするものである:
public static void print(EObject obj) {
Resource eResource = obj.eResource();
try {
eResource.save(System.out, null);
} catch (IOException e) {
e.printStackTrace();
}
}
それはNullPointerExceptionができます。この作品
public static void print(EObject obj) {
ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap()
.put("*", new XMIResourceFactoryImpl());
Resource resource = resourceSet.createResource(URI.createURI("dummyfile.xml"));
resource.getContents().add(obj);
try {
resource.save(System.out, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
を、ダミーのURIを指定せずに、画面に印刷することはできません??:私の代わりにこれを試してみました
EcoreUtil.copyを(含めるように更新
ありがとうございました!ちょうど私のobjのコピーを追加するか、印刷後に消えてしまいます。res.getContents()。add(EcoreUtil.copy(obj)); – u123
@tulコードを更新します。 EMFは単なるフレームワークなので、これらのオブジェクトはすべて実装によってサポートされています。私はEcoreUtilが置き換えるnull実装値があると思います。 –