关于Eclipse EMF Common Framework

时间:2011-02-10 14:42:02

标签: eclipse plugins eclipse-emf

任何人都可以告诉我如何使用AddCommand而不是“SetCommand”来执行以下操作。

我有一个这样的课程:

class Profile {
    List achievements;
    List grades;
    List extracurrics;
}

现在,假设我需要为此Profile对象添加成绩对象,如何仅使用AddCommand

来实现此目的

2 个答案:

答案 0 :(得分:2)

SetCommand主要用于设置EMF模型中的值,AddCommand用于修改EMF模型中的集合值,因此一般来说使用AddCommand不应该是一个问题。

您可以使用AddCommand中的静态创建功能创建新的AddCommand:

AddCommand.create(EditingDomain domain, EObject owner, EStructuralFeature feature, java.lang.Object value) 

给定值的解释:

domain: the editing domain your model lives in
owner: element you are doing the modifications to
feature: feature in model, that should be given to you by the EPackage of your model.
         So this case is the Grades list feature
value: the new object you add to the list

add命令中有许多不同的创建助手,因此如果需要定义要列出的索引,它也是可行的。

我没有在这里运行EMF,因此我无法提供任何直接来源,但如果不能解决问题,请告诉我。

答案 1 :(得分:1)

看起来应该是这样的:

Profile p = ...;
Grade g = ...;
Command add = AddCommand.create(domain,p, YourProfilePackage.Literals.PROFILE__GRADES, Collections.singleton(g));

其中YourProfilePackage应该在您的EMF模型自动生成的代码中。