任何人都可以告诉我如何使用AddCommand
而不是“SetCommand”来执行以下操作。
我有一个这样的课程:
class Profile {
List achievements;
List grades;
List extracurrics;
}
现在,假设我需要为此Profile对象添加成绩对象,如何仅使用AddCommand
答案 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模型自动生成的代码中。