Итераторы и Iterable в ECore

Я пытаюсь создать несколько классов Java из моей модели ECore. В этой модели некоторые классы должны реализовывать Iterable<Something>. Чтобы это произошло, я добавил EClass Iterable и установил для его Instance Type Name значение java.lang.Iterable. Это не позволяет генератору кода ECore генерировать код для Iterable, в то же время позволяя мне использовать его как ESuper Types для классов, которые я хочу реализовать в этом интерфейсе.

Это правильный способ сделать это?

Проблема с этим подходом заключается в том, что все редакторы (я попробовал «Редактор Sample Reflective eCore» и «Редактор универсальных форм EMF» не могут редактировать экземпляр модели. Оба редактора не могут найти тип Iterable и показывают ошибку «Класс Iterable — неизвестный классификатор».

Есть ли обходной путь или решение для этого?


person theomega    schedule 16.02.2012    source источник


Ответы (1)


Нет, я не думаю, что это правильно. Вы должны использовать аннотацию @extends в разделе комментариев класса для любого места, где вы хотите добавить внешний интерфейс Java. Таким образом, ваш интерфейс не сдуется во время генерации. Это со страницы 308 (раздел 10.11) книги EMF:

/**
 * <!-- begin-user-doc -->
 * A representation of the model object 'PurchaseOrder'.
 * @extends Serializable
 * <!-- end-user-doc -->
 *
 *

 * @model
 * @generated
 */
public interface PurchaseOrder extends EObject, Serializable
 {...
person Jeff    schedule 12.12.2014