protected void collectSuperTypeNames(ReferenceBinding binding,char[][] path){
  ReferenceBinding superclass=binding.superclass();
  if (path != null && superclass != null) {
    boolean samePackage=addIfSamePackage(superclass.compoundName,path);
    if (!samePackage)     path=null;
  }
  if (superclass != null) {
    addToResult(superclass.compoundName);
    collectSuperTypeNames(superclass,path);
  }
  ReferenceBinding[] interfaces=binding.superInterfaces();
  if (interfaces != null) {
    for (int i=0; i < interfaces.length; i++) {
      ReferenceBinding interfaceBinding=interfaces[i];
      addToResult(interfaceBinding.compoundName);
      collectSuperTypeNames(interfaceBinding,path);
    }
  }
}

protected void collectSuperTypeNames ( ReferenceBinding binding , char [ ] [ ] path ) { ReferenceBinding superclass = binding . superclass ( ) ; if ( path != null && superclass != null ) { boolean samePackage = addIfSamePackage ( superclass . compoundName , path ) ; if ( ! samePackage ) path = null ; } if ( superclass != null ) { addToResult ( superclass . compoundName ) ; collectSuperTypeNames ( superclass , path ) ; } ReferenceBinding [ ] interfaces = binding . superInterfaces ( ) ; if ( interfaces != null ) { for ( int i = 0 ; i < interfaces . length ; i ++ ) { ReferenceBinding interfaceBinding = interfaces [ i ] ; addToResult ( interfaceBinding . compoundName ) ; collectSuperTypeNames ( interfaceBinding , path ) ; } } }
collects the names of all the supertypes of the given type .
