我正在尝试从我的ECore模型创建一些Java类。在此模型中,某些类必须实现Iterable<Something>
。为了实现这一目标,我添加了一个EClass Iterable
并将其Instance Type Name
设置为java.lang.Iterable
。这可以防止ECore代码生成器生成Iterable
的代码,同时仍然允许我使用ESuper Types
来实现我想要实现此接口的类
这是正确的方法吗?
这种方法存在的问题是,所有编辑(我尝试过“Sample Reflective eCore Editor”和“Generic EMF Form Editor”都无法编辑模型的实例。两位编辑都找不到{{1输入并显示错误“Class'Iterable'是一个未知的分类器”。
是否有针对此的解决方法或解决方案?
答案 0 :(得分:0)
不,我不认为这是对的。对于要添加外部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
{...