Iterators and Iterable in ECore



我正试图从我的ECore模型中创建一些Java类。在这个模型中,一些类必须实现Iterable<Something>。为了实现这一点,我添加了一个EC类Iterable,并将其Instance Type Name设置为java.lang.Iterable。这阻止了ECore代码生成器为Iterable生成代码,同时仍然允许我将其作为ESuper Types用于我想要实现此接口的类

这样做对吗?

这种方法的问题是,所有编辑器(我尝试过"Sample Reflective eCore Editor"one_answers"Generic EMF Form Editor")都无法编辑模型的实例。这两个编辑器都无法找到Iterable类型,并显示错误"Class‘Iterable’is a unkown classer"。

对此有解决办法吗?

不,我认为这不对。对于任何想要添加外部Java接口的地方,都应该在类注释部分使用@extends注释。这样您的界面就不会在生成过程中被破坏。这来自EMF书的第308页(第10.11节):

/**
 * <!-- begin-user-doc -->
 * A representation of the model object 'PurchaseOrder'.
 * @extends Serializable
 * <!-- end-user-doc -->
 *
 *
 * @model
 * @generated
 */
public interface PurchaseOrder extends EObject, Serializable
 {...

相关内容

  • 没有找到相关文章

最新更新