public static Vector<String> find(Class<?> cls,String[] pkgnames){
  Vector<String> result;
  int i;
  HashSet<String> names;
  result=new Vector<String>();
  names=new HashSet<String>();
  for (i=0; i < pkgnames.length; i++) {
    names.addAll(find(cls,pkgnames[i]));
  }
  result.addAll(names);
  Collections.sort(result,new StringCompare());
  return result;
}

public static Vector < String > find ( Class < ? > cls , String [ ] pkgnames ) { Vector < String > result ; int i ; HashSet < String > names ; result = new Vector < String > ( ) ; names = new HashSet < String > ( ) ; for ( i = 0 ; i < pkgnames . length ; i ++ ) { names . addAll ( find ( cls , pkgnames [ i ] ) ) ; } result . addAll ( names ) ; Collections . sort ( result , new StringCompare ( ) ) ; return result ; }
checks the given packages for classes that inherited from the given class , in case it ' s a class , or implement this class , in case it ' s an interface .
