0

Ecoreからモデルコードを生成しました。私のモデル内には、派生した参照がありますderivedThings

私がしたいことはderivedThingsImpl次のとおりです。

モデル全体をトラバースしたいのですが、要素に応じて、コレクションに追加するかどうかを指定します。

for(TreeIterator iter = EcoreUtil.getAllContents(rootObject); iter.hasNext();)
 ...

問題は、どうすればderivedThingsImpl?!からルートオブジェクトにアクセスできるかということです。のようなものはありますgetRootObject()か?!

ありがとう

アップデート:

EObject e = this;
while(e.eContainer() != null) {
  e =  e.eContainer()
  if (e instanceof RootElement)
    break;
}
// No I should have the root element. Is this a good and clean way ?!
4

1 に答える 1

0

それを行うためのより良い方法があります:

EcoreUtil.getRootContainer(eObject);
于 2012-05-11T16:21:50.673 に答える