Class RhapsodyJavaAPI-如何向类添加对象模型图?
我正在使用RhapsodyJavaAPI创建一些插件,以获得自动化功能。我试图从一个类中创建一个对象模型图,但是没有函数来实现它 基本上,我想做如下事情:Class RhapsodyJavaAPI-如何向类添加对象模型图?,class,diagram,java,rhapsody,Class,Diagram,Java,Rhapsody,我正在使用RhapsodyJavaAPI创建一些插件,以获得自动化功能。我试图从一个类中创建一个对象模型图,但是没有函数来实现它 基本上,我想做如下事情: IRPClass cla = prj.addClass("Class"); IRPObjectModelDiagram omd = cla.addObjectModelDiagram("My OMD"); 但是,addObjectModelDiagram()函数对类不可用。 我尝试对该类使用ChangeTo()将其转换为Pkg,然后将其转换
IRPClass cla = prj.addClass("Class");
IRPObjectModelDiagram omd = cla.addObjectModelDiagram("My OMD");
但是,addObjectModelDiagram()函数对类不可用。
我尝试对该类使用ChangeTo()将其转换为Pkg,然后将其转换回类,但没有成功,并且通过创建IRPClass支持的其他类型的图,然后将其转换为OMD,对OMD执行相同的操作。它也不起作用
有人有办法帮我吗
托马斯托马斯
IRPModelement有一个名为addNewAggr的通用“add”方法(参见下面的javadoc)。
一般来说,由于它的开放性,我只会在没有专用方法的情况下使用此方法。(并不是每种类型的元素都可以添加到其他类型的元素中,所以在使用时必须小心。但在本例中,您讨论的是可以在UI中完成的事情—向类中添加OMD,因此不应该有任何问题。)
托马斯
IRPModelement有一个名为addNewAggr的通用“add”方法(参见下面的javadoc)。
一般来说,由于它的开放性,我只会在没有专用方法的情况下使用此方法。(并不是每种类型的元素都可以添加到其他类型的元素中,所以在使用时必须小心。但在本例中,您讨论的是可以在UI中完成的事情—向类中添加OMD,因此不应该有任何问题。)
假设您已经创建了一个类, 1.确定要在OMD中使用的IRPModelements。即类、对象、链接、关联等。 2.您可以使用
implPackage.getNestedElementsByMetaClass("Class", 1); // 1 means one level, you can increase it if you have to go deeper nests.
IRPModelElement implClass = null;
for(int i = 1; i < numberOfClasses+1 ; i++) {
elementInCollection = (IRPModelElement)classesOfImplPack.getItem(i);
if( elementInCollection.getMetaClass().equals("Class") && elementInCollection.getDisplayName().equals(componentName+"_Class") )
{
implClass = elementInCollection;
break;
}
}
implPackage.getnestedelementsbymetclass(“类”,1);//1意味着一个等级,如果你必须去更深的巢穴,你可以增加它。
irpmodelement implClass=null;
对于(inti=1;i
假设您已经创建了一个类, 1.确定要在OMD中使用的IRPModelements。即类、对象、链接、关联等。 2.您可以使用
implPackage.getNestedElementsByMetaClass("Class", 1); // 1 means one level, you can increase it if you have to go deeper nests.
IRPModelElement implClass = null;
for(int i = 1; i < numberOfClasses+1 ; i++) {
elementInCollection = (IRPModelElement)classesOfImplPack.getItem(i);
if( elementInCollection.getMetaClass().equals("Class") && elementInCollection.getDisplayName().equals(componentName+"_Class") )
{
implClass = elementInCollection;
break;
}
}
implPackage.getnestedelementsbymetclass(“类”,1);//1意味着一个等级,如果你必须去更深的巢穴,你可以增加它。
irpmodelement implClass=null;
对于(inti=1;i