gpt4 book ai didi

java - 这个简单的 EMF 模型有什么问题?

转载 作者:行者123 更新时间:2023-12-01 14:47:18 25 4
gpt4 key购买 nike

这个模型有什么问题:

/** @model abstract="true" */
public interface ContainedObject {
/** @model */
public Container getContainer();
}

/** @model abstract="true" */
public interface Container extends ContainedObject { }

/* @model */
public interface Category extends Container {
/** @model containment="true" opposite="container" */
public List<Category> getCategories();
/** @model containment="true" opposite="container" */
public List<Variable> getVariables();
}

/** @model */
public interface Variable extends ContainedObject { }

我希望所包含的对象与其容器之间具有双向性。对于上面的 java,当我尝试创建 .genmodel 时,我收到以下错误消息:

the opposite 'container' already has attribute 'categories' of 'Category' 
as its opposite

这个模型有什么问题吗?

最佳答案

相反关系必须是1:1关系。据我所知,两个引用指向同一个相反的引用是不可能的。使用 Ecore 编辑器而不是带注释的 Java 类创建 EMF 模型时,这一点会更加清晰。

就您而言,您可以选择 List<ContainedObject> containedObjects并创建两个额外的 getter 方法 getVariables()getCategories() ,从该公共(public)列表中过滤相应的元素,或者您可以创建两个 container引用文献,其中一个为categories和一个 variables .

或者,您可以删除明确的 container引用并仅使用隐式 eContainer/eContents EObject的特点.

关于java - 这个简单的 EMF 模型有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15295521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com