我有以下EMF结构,问题是当我使用二进制资源保留EMF模型时,我无法完全加载它,因为ServiceOperationNode
和ServiceOperation
之间的引用不能解决。
奇怪的是当我使用XMI资源时一切正常,但由于性能原因和存储要求,我们不得不使用二进制文件。
// first I set-up my resource registry
Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
reg.getExtensionToFactoryMap().put("bin", new Resource.Factory() {
@Override
public Resource createResource(final URI uri) {
return new BinaryResourceImpl(uri);
}
});
this.resourceSet = new ResourceSetImpl();
// then I create two resources
Resource resource1 = this.resourceSet.createResource(filePath1);
Resource resource2 = this.resourceSet.createResource(filePath2);
// and add all my objects to each resource
resource1.getContents().add(...);
resource2.getContents().add(...);
// after that I save the resources
resource1.save(ResourceAdder.createOptions());
resource2.save(ResourceAdder.createOptions());
我注意到的另一件事是,当我将ServiceOperation
添加到第一个资源时,我可以解析ServiceOperationNode
和ServiceOperation
之间的引用,然后来自{{1}的另一个引用}}不再起作用......
欢迎任何想法或指示!