public static Collection < ? extends GraphEntity > getAscendantsOfRole ( GraphEntity ge ) { Vector < GraphEntity > allAscendants = new Vector < GraphEntity > ( ) ; try { Vector < GraphEntity > ascendants = Utils . getRelatedElementsVector ( ge , "ARoleInheritance" , "ARoleInheritancetarget" ) ; while ( ! ascendants . isEmpty ( ) ) { allAscendants . addAll ( ascendants ) ; ascendants . clear ( ) ; for ( GraphEntity ascendant : allAscendants ) { ascendants . addAll ( Utils . getRelatedElementsVector ( ascendant , "ARoleInheritance" , "ARoleInheritancetarget" ) ) ; } ascendants . removeAll ( allAscendants ) ; } } catch ( NullEntity e ) { // TODO Auto-generated catch block e . printStackTrace ( ) ; } return allAscendants ; }
It obtains all ascendants of a role through the ARoleInheritance relationship .