public SortedSet < TypeElement > allSubClasses ( TypeElement typeElement , boolean isEnum ) { // new entries added to the set are searched as well, this is // really a work queue. List < TypeElement > list = new ArrayList <> ( directSubClasses ( typeElement , isEnum ) ) ; for ( int i = 0 ; i < list . size ( ) ; i ++ ) { TypeElement te = list . get ( i ) ; SortedSet < TypeElement > tset = directSubClasses0 ( te , isEnum ) ; for ( TypeElement tte : tset ) { if ( ! list . contains ( tte ) ) { list . add ( tte ) ; } } } SortedSet < TypeElement > out = new TreeSet <> ( comparator ) ; out . addAll ( list ) ; return out ; }
Return a set of all direct or indirect sub - classes and subInterfaces of the TypeElement argument .