Итераторы и Итерируемый в ECore - PullRequest
1 голос
/ 16 февраля 2012

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

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

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

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

1 Ответ

0 голосов
/ 13 декабря 2014

Нет, я не думаю, что это правильно.Вы должны использовать аннотацию @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
 {...
...