< prev index next >

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java

Print this page




  37 import java.util.TreeSet;
  38 
  39 import javax.lang.model.element.Element;
  40 import javax.lang.model.element.PackageElement;
  41 import javax.lang.model.element.TypeElement;
  42 import javax.tools.Diagnostic;
  43 
  44 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
  45 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
  46 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
  47 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
  48 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
  49 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode;
  50 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
  51 import jdk.javadoc.internal.doclets.toolkit.Content;
  52 import jdk.javadoc.internal.doclets.toolkit.util.ClassTree;
  53 import jdk.javadoc.internal.doclets.toolkit.util.ClassUseMapper;
  54 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
  55 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
  56 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;

  57 
  58 
  59 /**
  60  * Generate class usage information.
  61  *
  62  *  <p><b>This is NOT part of any supported API.
  63  *  If you write code that depends on this, you do so at your own risk.
  64  *  This code and its internal interfaces are subject to change or
  65  *  deletion without notice.</b>
  66  */
  67 public class ClassUseWriter extends SubWriterHolderWriter {
  68 
  69     final TypeElement typeElement;
  70     Set<PackageElement> pkgToPackageAnnotations = null;
  71     final Map<PackageElement, List<Element>> pkgToClassTypeParameter;
  72     final Map<PackageElement, List<Element>> pkgToClassAnnotations;
  73     final Map<PackageElement, List<Element>> pkgToMethodTypeParameter;
  74     final Map<PackageElement, List<Element>> pkgToMethodArgTypeParameter;
  75     final Map<PackageElement, List<Element>> pkgToMethodReturnTypeParameter;
  76     final Map<PackageElement, List<Element>> pkgToMethodAnnotations;


 141                     "Internal error: package sets don't match: "
 142                     + pkgSet + " with: " + mapper.classToPackage.get(this.typeElement));
 143         }
 144 
 145         methodSubWriter = new MethodWriterImpl(this);
 146         constrSubWriter = new ConstructorWriterImpl(this);
 147         fieldSubWriter = new FieldWriterImpl(this);
 148         classSubWriter = new NestedClassWriterImpl(this);
 149         this.navBar = new Navigation(typeElement, configuration, PageMode.USE, path);
 150     }
 151 
 152     /**
 153      * Write out class use pages.
 154      *
 155      * @param configuration the configuration for this doclet
 156      * @param classtree the class tree hierarchy
 157      * @throws DocFileIOException if there is an error while generating the documentation
 158      */
 159     public static void generate(HtmlConfiguration configuration, ClassTree classtree) throws DocFileIOException  {
 160         ClassUseMapper mapper = new ClassUseMapper(configuration, classtree);


 161         for (TypeElement aClass : configuration.getIncludedTypeElements()) {
 162             // If -nodeprecated option is set and the containing package is marked
 163             // as deprecated, do not generate the class-use page. We will still generate
 164             // the class-use page if the class is marked as deprecated but the containing
 165             // package is not since it could still be linked from that package-use page.
 166             if (!(configuration.nodeprecated &&
 167                   configuration.utils.isDeprecated(configuration.utils.containingPackage(aClass))))
 168                 ClassUseWriter.generate(configuration, mapper, aClass);
 169         }
 170         for (PackageElement pkg : configuration.packages) {
 171             // If -nodeprecated option is set and the package is marked
 172             // as deprecated, do not generate the package-use page.
 173             if (!(configuration.nodeprecated && configuration.utils.isDeprecated(pkg)))
 174                 PackageUseWriter.generate(configuration, mapper, pkg);
 175         }
 176     }
 177 
 178     private Map<PackageElement, List<Element>> pkgDivide(Map<TypeElement, ? extends List<? extends Element>> classMap) {
 179         Map<PackageElement, List<Element>> map = new HashMap<>();
 180         List<? extends Element> elements = (List<? extends Element>) classMap.get(typeElement);
 181         if (elements != null) {
 182             Collections.sort(elements, utils.makeClassUseComparator());
 183             for (Element e : elements) {
 184                 PackageElement pkg = utils.containingPackage(e);
 185                 pkgSet.add(pkg);
 186                 List<Element> inPkg = map.get(pkg);
 187                 if (inPkg == null) {
 188                     inPkg = new ArrayList<>();
 189                     map.put(pkg, inPkg);
 190                 }
 191                 inPkg.add(e);
 192             }
 193         }




  37 import java.util.TreeSet;
  38 
  39 import javax.lang.model.element.Element;
  40 import javax.lang.model.element.PackageElement;
  41 import javax.lang.model.element.TypeElement;
  42 import javax.tools.Diagnostic;
  43 
  44 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
  45 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
  46 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
  47 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
  48 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
  49 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode;
  50 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
  51 import jdk.javadoc.internal.doclets.toolkit.Content;
  52 import jdk.javadoc.internal.doclets.toolkit.util.ClassTree;
  53 import jdk.javadoc.internal.doclets.toolkit.util.ClassUseMapper;
  54 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
  55 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
  56 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
  57 import jdk.javadoc.internal.doclets.toolkit.util.Utils;
  58 
  59 
  60 /**
  61  * Generate class usage information.
  62  *
  63  *  <p><b>This is NOT part of any supported API.
  64  *  If you write code that depends on this, you do so at your own risk.
  65  *  This code and its internal interfaces are subject to change or
  66  *  deletion without notice.</b>
  67  */
  68 public class ClassUseWriter extends SubWriterHolderWriter {
  69 
  70     final TypeElement typeElement;
  71     Set<PackageElement> pkgToPackageAnnotations = null;
  72     final Map<PackageElement, List<Element>> pkgToClassTypeParameter;
  73     final Map<PackageElement, List<Element>> pkgToClassAnnotations;
  74     final Map<PackageElement, List<Element>> pkgToMethodTypeParameter;
  75     final Map<PackageElement, List<Element>> pkgToMethodArgTypeParameter;
  76     final Map<PackageElement, List<Element>> pkgToMethodReturnTypeParameter;
  77     final Map<PackageElement, List<Element>> pkgToMethodAnnotations;


 142                     "Internal error: package sets don't match: "
 143                     + pkgSet + " with: " + mapper.classToPackage.get(this.typeElement));
 144         }
 145 
 146         methodSubWriter = new MethodWriterImpl(this);
 147         constrSubWriter = new ConstructorWriterImpl(this);
 148         fieldSubWriter = new FieldWriterImpl(this);
 149         classSubWriter = new NestedClassWriterImpl(this);
 150         this.navBar = new Navigation(typeElement, configuration, PageMode.USE, path);
 151     }
 152 
 153     /**
 154      * Write out class use pages.
 155      *
 156      * @param configuration the configuration for this doclet
 157      * @param classtree the class tree hierarchy
 158      * @throws DocFileIOException if there is an error while generating the documentation
 159      */
 160     public static void generate(HtmlConfiguration configuration, ClassTree classtree) throws DocFileIOException  {
 161         ClassUseMapper mapper = new ClassUseMapper(configuration, classtree);
 162         boolean nodeprecated = configuration.getOptions().noDeprecated;
 163         Utils utils = configuration.utils;
 164         for (TypeElement aClass : configuration.getIncludedTypeElements()) {
 165             // If -nodeprecated option is set and the containing package is marked
 166             // as deprecated, do not generate the class-use page. We will still generate
 167             // the class-use page if the class is marked as deprecated but the containing
 168             // package is not since it could still be linked from that package-use page.
 169             if (!(nodeprecated &&
 170                   utils.isDeprecated(utils.containingPackage(aClass))))
 171                 ClassUseWriter.generate(configuration, mapper, aClass);
 172         }
 173         for (PackageElement pkg : configuration.packages) {
 174             // If -nodeprecated option is set and the package is marked
 175             // as deprecated, do not generate the package-use page.
 176             if (!(nodeprecated && utils.isDeprecated(pkg)))
 177                 PackageUseWriter.generate(configuration, mapper, pkg);
 178         }
 179     }
 180 
 181     private Map<PackageElement, List<Element>> pkgDivide(Map<TypeElement, ? extends List<? extends Element>> classMap) {
 182         Map<PackageElement, List<Element>> map = new HashMap<>();
 183         List<? extends Element> elements = (List<? extends Element>) classMap.get(typeElement);
 184         if (elements != null) {
 185             Collections.sort(elements, utils.makeClassUseComparator());
 186             for (Element e : elements) {
 187                 PackageElement pkg = utils.containingPackage(e);
 188                 pkgSet.add(pkg);
 189                 List<Element> inPkg = map.get(pkg);
 190                 if (inPkg == null) {
 191                     inPkg = new ArrayList<>();
 192                     map.put(pkg, inPkg);
 193                 }
 194                 inPkg.add(e);
 195             }
 196         }


< prev index next >