public ArchERelation getRelation(ArchEScenario sc, ArchEResponsibility resp) { List<ArchERelation> list = this.getRelations(ArchETranslationRelationVO.class.getName()); ArchERelation rel = null; for (Iterator<ArchERelation> it = list.iterator(); it.hasNext(); ) { rel = it.next(); // TODO: Check if an equal 'by name' is needed below ArchEScenario parent = (ArchEScenario) rel.getParent(); ArchEResponsibility child = (ArchEResponsibility) rel.getChild(); if ((parent != null) && (child != null) && parent.equals(sc) && child.equals(resp)) return (rel); } return (null); }
/** * Test if a given responsibility has been refined * * @param responsibility The parent responsibility */ public boolean isLeaf(ArchEResponsibility responsibility) { ArchERefinementRelationVO item = null; for (Iterator<ArchERefinementRelationVO> it = refVOs.iterator(); it.hasNext(); ) { item = it.next(); // TODO: Check if an equal 'by name' works better here ArchEResponsibility parent = item.getParent(); if ((parent != null) && parent.equals(responsibility) && item.getChild() != null) return (false); } return (true); }
/** * Return the refinements (children responsibilities) of a given responsibility * * @param parentResponsibility The parent responsibility */ public List<ArchEResponsibility> getChildrenResponsibilities( ArchEResponsibility parentResponsibility) { List<ArchEResponsibility> children = new ArrayList<ArchEResponsibility>(); ArchERefinementRelationVO item = null; for (Iterator<ArchERefinementRelationVO> it = refVOs.iterator(); it.hasNext(); ) { item = it.next(); // TODO: Check if an equal 'by name' works better here ArchEResponsibility parent = item.getParent(); if ((parent != null) && parent.equals(parentResponsibility) && item.getChild() != null) children.add(item.getChild()); } return (children); }
public boolean containResponsibility(ArchEResponsibility responsibility) { for (Iterator<ArchEResponsibilityVO> it = rawRSVO.getResponsibilities().iterator(); it.hasNext(); ) { // Two responsibilities are equal if they have the same name // (under the same version of the architecture) if (it.next().getName().equals(responsibility.getName())) return (true); } return (false); }
/** * Test whether there is a relation of a given type between two responsibilities. In case the * relation exists, it is returned by the method * * @param resp1 The source responsibility * @param resp2 The target responsibility * @param relationTypeVO The relation type (VO class name) */ public ArchERelation getRelation( ArchEResponsibility resp1, ArchEResponsibility resp2, String relationTypeVO) { List<ArchERelation> list = this.getRelations(relationTypeVO); ArchERelation rel = null; for (Iterator<ArchERelation> it = list.iterator(); it.hasNext(); ) { rel = it.next(); // TODO: Check if an equal 'by name' is needed below ArchEResponsibility parent = (ArchEResponsibility) rel.getParent(); ArchEResponsibility child = (ArchEResponsibility) rel.getChild(); if ((parent != null) && (child != null) && parent.equals(resp1) && child.equals(resp2)) return (rel); if ((parent != null) && (child != null) && parent.equals(resp2) && child.equals(resp1)) return (rel); } return (null); }