// Open project file and get project model ProjectAccessor prjAccessor = ProjectAccessorFactory.getProjectAccessor(); prjAccessor.open(inputFile); IModel iModel = prjAccessor.getProject(); |
/** * Get packages under Package recursively. * * @param iPackage * Selected Package * @param iPackages * The list of all stored packages * @return The list of all stored packages */ private List getPackages(IPackage iPackage, List iPackages) { INamedElement[] iNamedElements = iPackage.getOwnedElements(); for (int i = 0; i < iNamedElements.length; i++) { INamedElement iNamedElement = iNamedElements[i]; if (iNamedElement instanceof IPackage) { iPackages.add(iNamedElement); getPackages((IPackage)iNamedElement, iPackages); } } return iPackages; } |
/** * Get classes under the selected Package. * * @param iPackage * Selected package * @return the list of all stored classes */ private List getIClasses(IPackage iPackage) { List iClasses = new ArrayList(); INamedElement[] iNamedElements = iPackage.getOwnedElements(); for (int i = 0; i < iNamedElements.length; i++) { INamedElement iNamedElement = iNamedElements[i]; if (iNamedElement instanceof IClass) { iClasses.add(iNamedElement); } } return iClasses; } |
/** * Get the class name with Full Path * * @param iClass * Class * @return Class name (Full Path) */ private String getFullName(IClass iClass) { StringBuffer sb = new StringBuffer(); IElement owner = iClass.getOwner(); while (owner != null && owner instanceof INamedElement && owner.getOwner() != null) { sb.insert(0, ((INamedElement) owner).getName() + "::"); owner = owner.getOwner(); } sb.append(iClass.getName()); return sb.toString(); } |
Example: How to get an activity diagram
public List getActivityDiagram(IPackage iPackage) { List activityDiagrams = new ArrayList(); IDiagram[] dgms = iPackage.getDiagrams(); for (int i = 0; i < dgms.length; i++) { IDiagram dgm = dgms[i]; if (dgm instanceof IActivityDiagram && !((IActivityDiagram )dgm).isFlowChart()) { activityDiagrams.add(dgm); } } return activityDiagrams; } |
Example: How to get an sequence diagram
public List getFlowCharts(IPackage iPackage) { List flowCharts = new ArrayList(); IDiagram[] dgms = iPackage.getDiagrams(); for (int i = 0; i < dgms.length; i++) { IDiagram dgm = dgms[i]; if (dgm instanceof IActivityDiagram && ((IActivityDiagram )dgm).isFlowChart()) { flowCharts.add(dgm); } } return flowCharts ; } |
Example: How to get alias1
private static final String KEY_ALIAS1 = "jude.multi_language.alias1"; private String geAlias1(INamedElement element) { ITaggedValue[] tvs = element.getTaggedValues(); for (int i = 0; i < tvs.length; i++) { ITaggedValue tv = tvs[i]; if (KEY_ALIAS1.equals(tv.getKey())) { return tv.getValue(); } } return null; } |
Example for getting hyperlink
private void showHyperlinkStrings(INamedElement element) { IHyperlink[] links = element.getHyperlinks(); for (int i = 0; i < links.length; i++) { IHyperlink link = links[i]; if(link.isFile()) { System.out.println(link.getName()); System.out.println(link.getPath()); System.out.println(link.getComment()); } else if(link.isModel()) { System.out.println(link.getName()); System.out.println(link.getPath()); System.out.println(link.getComment()); } else if(link.isURL()) { System.out.println(link.getName()); System.out.println(link.getPath()); System.out.println(link.getComment()); } } } |
Just like the example below, name of a model is id which can be got by getId() of IElementImp.
Example: How to get hyperlink
type=file,name=jude.log,path=C:/Documents and Settings,comment= Target is a file type=url,name=http://www.change-vision.com,path=http://,comment= Target is a web page type=model,name=9a1411-1112fec29a5-0804d01aa6c5fb9fe2aab956b4ca593a,path=,comment= Target is a Jude model |
How to get loop start element
private static final String LOOP_START_ELEMENT = "loop_start"; public List getLoopStartElements(IActivityDiagram iActivityDiagram) { List loopStartElements = new ArrayList(); IActivity iActivity = iActivityDiagram.getActivity(); IActivityNode[] activityNodes = iActivity.getActivityNodes(); for (int i = 0; i < activityNodes.length; i++) { IActivityNode node = activityNodes[i]; String[] stereotypes = node.getStereotypes(); for (int j = 0; j < stereotypes.length; j++) { if (LOOP_START_ELEMENT.equals(stereotypes[j])) { loopStartElements.add(node); break; } } } return loopStartElements; } |