com.sun.tools.doclets.internal.toolkit.util
Class ClassUseMapper

java.lang.Object
  extended by com.sun.tools.doclets.internal.toolkit.util.ClassUseMapper

public class ClassUseMapper
extends java.lang.Object

Map all class uses for a given class. This code is not part of an API. It is implementation that is subject to change. Do not use it as an API

Since:
1.2

Field Summary
 java.util.Map<java.lang.String,java.util.List<FieldDoc>> annotationToFieldDoc
          The mapping of AnnotationTypeDocs to FieldDocs that use them.
 java.util.Map<java.lang.String,java.util.Set<ClassDoc>> classToClass
          Mapping of ClassDocs to set of ClassDoc used by that class.
 java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToClassAnnotations
          The mapping of AnnotationTypeDocs to ClassDocs that use them.
 java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToClassTypeParam
          The mapping of ClassDocs to ClassDocs that use them as type parameters.
 java.util.Map<java.lang.String,java.util.List<ConstructorDoc>> classToConstructorAnnotations
          The mapping of AnnotationTypeDocs to constructors that use them.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorArgs
          Mapping of ClassDocs to list of ConstructorDoc having that class as an arg.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorDocArgTypeParam
          The mapping of ClassDocs to Constructor arguments that use them as type parameters.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorParamAnnotation
          The mapping of AnnotationTypeDocs to Constructor parameters that use them.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorThrows
          Mapping of ClassDocs to list of ConstructorDoc which throws that class.
 java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToExecMemberDocAnnotations
          The mapping of AnnotationTypeDocs to ExecutableMemberDocs that use them.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToExecMemberDocArgTypeParam
          The mapping of ClassDocs to ExecutableMemberDocs arguments that use them as type parameters.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToExecMemberDocParamAnnotation
          The mapping of AnnotationTypeDocs to MethodDoc parameters that use them.
 java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToExecMemberDocReturnTypeParam
          The mapping of ClassDocs to ExecutableMemberDocs that have return type with type parameters of that class.
 java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToExecMemberDocTypeParam
          The mapping of ClassDocs to ExecutableMemberDocs that use them as type parameters.
 java.util.Map<java.lang.String,java.util.List<FieldDoc>> classToField
          Mapping of ClassDocs to list of FieldDoc declared as that class.
 java.util.Map<java.lang.String,java.util.List<FieldDoc>> classToFieldDocTypeParam
          The mapping of ClassDocs to FieldDocs that use them as type parameters.
 java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToImplementingClass
          Mapping of ClassDocs to list of ClassDoc which implement this interface.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToMethodArgs
          Mapping of ClassDocs to list of MethodDoc having that class as an arg.
 java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToMethodReturn
          Mapping of ClassDocs to list of MethodDoc returning that class.
 java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToMethodThrows
          Mapping of ClassDocs to list of MethodDoc which throws that class.
 java.util.Map<java.lang.String,java.util.Set<PackageDoc>> classToPackage
          Mapping of ClassDocs to set of PackageDoc used by that class.
 java.util.Map<java.lang.String,java.util.List<PackageDoc>> classToPackageAnnotations
          Mapping of Annotations to set of PackageDoc that use the annotation.
 java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToSubclass
          Mapping of ClassDocs to list of ClassDoc which are direct or indirect subclasses of that class.
 java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToSubinterface
          Mapping of ClassDocs to list of ClassDoc which are direct or indirect subinterfaces of that interface.
private  ClassTree classtree
           
 
Constructor Summary
ClassUseMapper(RootDoc root, ClassTree classtree)
           
 
Method Summary
private
<T extends ProgramElementDoc>
void
add(java.util.Map<java.lang.String,java.util.List<T>> map, ClassDoc cd, T ref)
           
private  void addAll(java.util.Map<java.lang.String,java.util.List<ClassDoc>> map, ClassDoc cd, java.util.Collection<ClassDoc> refs)
           
private
<T extends ProgramElementDoc>
void
addTypeParameterToMap(java.util.Map<java.lang.String,java.util.List<T>> map, Type type, T holder)
           
private  java.util.Set<ClassDoc> classSet(ClassDoc cd)
           
private  java.util.Collection<ClassDoc> implementingClasses(ClassDoc cd)
          Return all implementing classes of an interface (including all subclasses of implementing classes and all classes implementing subinterfaces) AND fill-in both classToImplementingClass and classToSubinterface maps.
private
<T extends ProgramElementDoc>
void
mapAnnotations(java.util.Map<java.lang.String,java.util.List<T>> map, java.lang.Object doc, T holder)
          Map the AnnotationType to the ProgramElementDocs that use them as type parameters.
private
<T extends PackageDoc>
void
mapAnnotations(java.util.Map<java.lang.String,java.util.List<T>> map, PackageDoc doc, T holder)
          Map the AnnotationType to the ProgramElementDocs that use them as type parameters.
private  void mapExecutable(ExecutableMemberDoc em)
          Determine classes used by a method or constructor, so they can be inverse mapped.
private
<T extends ProgramElementDoc>
void
mapTypeParameters(java.util.Map<java.lang.String,java.util.List<T>> map, java.lang.Object doc, T holder)
          Map the ClassDocs to the ProgramElementDocs that use them as type parameters.
private  java.util.Set<PackageDoc> packageSet(ClassDoc cd)
           
private
<T> java.util.List<T>
refList(java.util.Map<java.lang.String,java.util.List<T>> map, ClassDoc cd)
           
private  java.util.Collection<ClassDoc> subclasses(ClassDoc cd)
          Return all subclasses of a class AND fill-in classToSubclass map.
private  java.util.Collection<ClassDoc> subinterfaces(ClassDoc cd)
          Return all subinterfaces of an interface AND fill-in classToSubinterface map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classtree

private final ClassTree classtree

classToPackage

public java.util.Map<java.lang.String,java.util.Set<PackageDoc>> classToPackage
Mapping of ClassDocs to set of PackageDoc used by that class. Entries may be null.


classToPackageAnnotations

public java.util.Map<java.lang.String,java.util.List<PackageDoc>> classToPackageAnnotations
Mapping of Annotations to set of PackageDoc that use the annotation.


classToClass

public java.util.Map<java.lang.String,java.util.Set<ClassDoc>> classToClass
Mapping of ClassDocs to set of ClassDoc used by that class. Entries may be null.


classToSubclass

public java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToSubclass
Mapping of ClassDocs to list of ClassDoc which are direct or indirect subclasses of that class. Entries may be null.


classToSubinterface

public java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToSubinterface
Mapping of ClassDocs to list of ClassDoc which are direct or indirect subinterfaces of that interface. Entries may be null.


classToImplementingClass

public java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToImplementingClass
Mapping of ClassDocs to list of ClassDoc which implement this interface. Entries may be null.


classToField

public java.util.Map<java.lang.String,java.util.List<FieldDoc>> classToField
Mapping of ClassDocs to list of FieldDoc declared as that class. Entries may be null.


classToMethodReturn

public java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToMethodReturn
Mapping of ClassDocs to list of MethodDoc returning that class. Entries may be null.


classToMethodArgs

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToMethodArgs
Mapping of ClassDocs to list of MethodDoc having that class as an arg. Entries may be null.


classToMethodThrows

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToMethodThrows
Mapping of ClassDocs to list of MethodDoc which throws that class. Entries may be null.


classToConstructorArgs

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorArgs
Mapping of ClassDocs to list of ConstructorDoc having that class as an arg. Entries may be null.


classToConstructorThrows

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorThrows
Mapping of ClassDocs to list of ConstructorDoc which throws that class. Entries may be null.


classToConstructorAnnotations

public java.util.Map<java.lang.String,java.util.List<ConstructorDoc>> classToConstructorAnnotations
The mapping of AnnotationTypeDocs to constructors that use them.


classToConstructorParamAnnotation

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorParamAnnotation
The mapping of AnnotationTypeDocs to Constructor parameters that use them.


classToConstructorDocArgTypeParam

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToConstructorDocArgTypeParam
The mapping of ClassDocs to Constructor arguments that use them as type parameters.


classToClassTypeParam

public java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToClassTypeParam
The mapping of ClassDocs to ClassDocs that use them as type parameters.


classToClassAnnotations

public java.util.Map<java.lang.String,java.util.List<ClassDoc>> classToClassAnnotations
The mapping of AnnotationTypeDocs to ClassDocs that use them.


classToExecMemberDocTypeParam

public java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToExecMemberDocTypeParam
The mapping of ClassDocs to ExecutableMemberDocs that use them as type parameters.


classToExecMemberDocArgTypeParam

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToExecMemberDocArgTypeParam
The mapping of ClassDocs to ExecutableMemberDocs arguments that use them as type parameters.


classToExecMemberDocAnnotations

public java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToExecMemberDocAnnotations
The mapping of AnnotationTypeDocs to ExecutableMemberDocs that use them.


classToExecMemberDocReturnTypeParam

public java.util.Map<java.lang.String,java.util.List<MethodDoc>> classToExecMemberDocReturnTypeParam
The mapping of ClassDocs to ExecutableMemberDocs that have return type with type parameters of that class.


classToExecMemberDocParamAnnotation

public java.util.Map<java.lang.String,java.util.List<ExecutableMemberDoc>> classToExecMemberDocParamAnnotation
The mapping of AnnotationTypeDocs to MethodDoc parameters that use them.


classToFieldDocTypeParam

public java.util.Map<java.lang.String,java.util.List<FieldDoc>> classToFieldDocTypeParam
The mapping of ClassDocs to FieldDocs that use them as type parameters.


annotationToFieldDoc

public java.util.Map<java.lang.String,java.util.List<FieldDoc>> annotationToFieldDoc
The mapping of AnnotationTypeDocs to FieldDocs that use them.

Constructor Detail

ClassUseMapper

public ClassUseMapper(RootDoc root,
                      ClassTree classtree)
Method Detail

subclasses

private java.util.Collection<ClassDoc> subclasses(ClassDoc cd)
Return all subclasses of a class AND fill-in classToSubclass map.


subinterfaces

private java.util.Collection<ClassDoc> subinterfaces(ClassDoc cd)
Return all subinterfaces of an interface AND fill-in classToSubinterface map.


implementingClasses

private java.util.Collection<ClassDoc> implementingClasses(ClassDoc cd)
Return all implementing classes of an interface (including all subclasses of implementing classes and all classes implementing subinterfaces) AND fill-in both classToImplementingClass and classToSubinterface maps.


mapExecutable

private void mapExecutable(ExecutableMemberDoc em)
Determine classes used by a method or constructor, so they can be inverse mapped.


refList

private <T> java.util.List<T> refList(java.util.Map<java.lang.String,java.util.List<T>> map,
                                      ClassDoc cd)

packageSet

private java.util.Set<PackageDoc> packageSet(ClassDoc cd)

classSet

private java.util.Set<ClassDoc> classSet(ClassDoc cd)

add

private <T extends ProgramElementDoc> void add(java.util.Map<java.lang.String,java.util.List<T>> map,
                                               ClassDoc cd,
                                               T ref)

addAll

private void addAll(java.util.Map<java.lang.String,java.util.List<ClassDoc>> map,
                    ClassDoc cd,
                    java.util.Collection<ClassDoc> refs)

mapTypeParameters

private <T extends ProgramElementDoc> void mapTypeParameters(java.util.Map<java.lang.String,java.util.List<T>> map,
                                                             java.lang.Object doc,
                                                             T holder)
Map the ClassDocs to the ProgramElementDocs that use them as type parameters.

Parameters:
map - the map the insert the information into.
doc - the doc whose type parameters are being checked.
holder - the holder that owns the type parameters.

mapAnnotations

private <T extends ProgramElementDoc> void mapAnnotations(java.util.Map<java.lang.String,java.util.List<T>> map,
                                                          java.lang.Object doc,
                                                          T holder)
Map the AnnotationType to the ProgramElementDocs that use them as type parameters.

Parameters:
map - the map the insert the information into.
doc - the doc whose type parameters are being checked.
holder - the holder that owns the type parameters.

mapAnnotations

private <T extends PackageDoc> void mapAnnotations(java.util.Map<java.lang.String,java.util.List<T>> map,
                                                   PackageDoc doc,
                                                   T holder)
Map the AnnotationType to the ProgramElementDocs that use them as type parameters.

Parameters:
map - the map the insert the information into.
doc - the doc whose type parameters are being checked.
holder - the holder that owns the type parameters.

addTypeParameterToMap

private <T extends ProgramElementDoc> void addTypeParameterToMap(java.util.Map<java.lang.String,java.util.List<T>> map,
                                                                 Type type,
                                                                 T holder)