Модель поперечного сечения экокора

Я сгенерировал код модели из 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 ?!

person matthias    schedule 08.05.2012    source источник


Ответы (1)


Есть лучший способ сделать это:

EcoreUtil.getRootContainer(eObject);
person execc    schedule 11.05.2012