如何从Java获取Archi中的元素和关系?
我正在尝试为Archi()开发一个插件,我需要计算给定模型中的元素和关系。我试着用这个元素,但我不知道这是否是更好的选择如何从Java获取Archi中的元素和关系?,java,eclipse,plugins,Java,Eclipse,Plugins,我正在尝试为Archi()开发一个插件,我需要计算给定模型中的元素和关系。我试着用这个元素,但我不知道这是否是更好的选择 //Get the objects in the model for(IDiagramModelObject diagramModelObj: this.getDiagramModel().getChildren()){ searchElementsRecursively(diagramModelObj, elements); } //Recursive functi
//Get the objects in the model
for(IDiagramModelObject diagramModelObj: this.getDiagramModel().getChildren()){
searchElementsRecursively(diagramModelObj, elements);
}
//Recursive function to get the enclosed objects (If an object has objects)
private void searchElementsRecursively(IDiagramModelObject diagramModelObj, Set<EObject> elements) throws Exception{
if(diagramModelObj instanceof DiagramModelArchimateObject){
DiagramModelArchimateObject archimateObject = ((DiagramModelArchimateObject)diagramModelObj);
for(IDiagramModelObject diagramModelObjChild: archimateObject.getChildren()){
searchElementsRecursively(diagramModelObjChild, elements);
}
elements.add(DiagramModelUtil.getModelElement(diagramModelObj));
}
//获取模型中的对象
对于(IDiaGrammodeObject diagramModelObj:this.getDiagramModel().getChildren()){
快速搜索元素(diagramModelObj,元素);
}
//获取封闭对象的递归函数(如果对象有对象)
私有void searchElementsRecursively(IDiaGrammodeObject diagramModelObj,Set elements)引发异常{
if(DiagrammodelChimateObject的diagramModelObj实例){
DiagramModelArchimateObject archimateObject=((DiagramModelArchimateObject)diagramModelObj);
对于(IDiaGrammodeObject diagramModelObjChild:archimateObject.getChildren()){
快速搜索元素(diagramModelObjChild,元素);
}
add(DiagramModelUtil.getmodelement(diagramModelObj));
}
}
但我不知道如何对感情做同样的事?如何获取模型中的所有关系
提前谢谢 现在回答这个问题可能太晚了,当然这个问题在Archi论坛上会更好 给定“model”的IArchimateModel实例,您可以迭代所有模型内容:
for(Iterator<EObject> iter = model.eAllContents(); iter.hasNext();) {
EObject eObject = iter.next();
if(eObject instanceof IRelationship) {
relations.add((IRelationship)eObject);
}
else if(eObject instanceof IArchimateElement) {
elements.add((IArchimateElement)eObject);
}
}
for(迭代器iter=model.eAllContents();iter.hasNext();){
EObject=iter.next();
if(eObject instanceof IRelationship){
添加((IRelationship)对象);
}
else if(IArchimateElement的对象实例){
元素。添加((IArchimateElement)EOObject);
}
}