如何更改 InternalEObject 的 URI

How to change the URI of an InternalEObject

我想更改 InternalEObject 的 URI。

我知道我可以通过调用获取 URI:

EcoreUtil.getURI(internalEObject);

更改相关 internalEObject 的 URI 的正确过程是什么?不仅仅是获取字符串。创建一个新的相同的 InternalEObject 并给它一个新的 URI?

解决了。

可以使用 EcoreUtil 中的实用函数,它是 EMF 的一部分。

以下代码片段完成了这项工作:

for (InternalEObject def: defs) {
  URI uri = EcoreUtil.getURI(def);
  def.eSetProxyURI(URI.createURI(uri.toString().replaceAll(STRING_CONSTANT1, STRING_CONSTANT2)));
}