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

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -21,18 +21,32 @@
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
-package com.sun.tools.doclets.formats.html;
+package jdk.javadoc.internal.doclets.formats.html;
 
 import java.io.*;
 
-import com.sun.javadoc.*;
-import com.sun.tools.doclets.formats.html.markup.*;
-import com.sun.tools.doclets.internal.toolkit.*;
+import java.util.Arrays;
+import java.util.List;
 
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.TypeMirror;
+
+import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
+import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
+import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
+import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
+import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
+import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeFieldWriter;
+import jdk.javadoc.internal.doclets.toolkit.Content;
+import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
+
+
 /**
  * Writes annotation type field documentation in HTML format.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.

@@ -49,23 +63,23 @@
      *
      * @param writer         the writer that will write the output.
      * @param annotationType the AnnotationType that holds this member.
      */
     public AnnotationTypeFieldWriterImpl(SubWriterHolderWriter writer,
-            AnnotationTypeDoc annotationType) {
+            TypeElement annotationType) {
         super(writer, annotationType);
     }
 
     /**
      * {@inheritDoc}
      */
-    public Content getMemberSummaryHeader(ClassDoc classDoc,
+    public Content getMemberSummaryHeader(TypeElement typeElement,
             Content memberSummaryTree) {
         memberSummaryTree.addContent(
                 HtmlConstants.START_OF_ANNOTATION_TYPE_FIELD_SUMMARY);
         Content memberTree = writer.getMemberTreeHeader();
-        writer.addSummaryHeader(this, classDoc, memberTree);
+        writer.addSummaryHeader(this, typeElement, memberTree);
         return memberTree;
     }
 
     /**
      * {@inheritDoc}

@@ -89,11 +103,11 @@
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addAnnotationDetailsTreeHeader(ClassDoc classDoc,
+    public void addAnnotationDetailsTreeHeader(TypeElement typeElement,
             Content memberDetailsTree) {
         if (!writer.printedAnnotationFieldHeading) {
             memberDetailsTree.addContent(writer.getMarkerAnchor(
                     SectionName.ANNOTATION_TYPE_FIELD_DETAIL));
             Content heading = HtmlTree.HEADING(HtmlConstants.DETAILS_HEADING,

@@ -104,60 +118,60 @@
     }
 
     /**
      * {@inheritDoc}
      */
-    public Content getAnnotationDocTreeHeader(MemberDoc member,
+    public Content getAnnotationDocTreeHeader(Element member,
             Content annotationDetailsTree) {
         annotationDetailsTree.addContent(
-                writer.getMarkerAnchor(member.name()));
+                writer.getMarkerAnchor(name(member)));
         Content annotationDocTree = writer.getMemberTreeHeader();
         Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING);
-        heading.addContent(member.name());
+        heading.addContent(name(member));
         annotationDocTree.addContent(heading);
         return annotationDocTree;
     }
 
     /**
      * {@inheritDoc}
      */
-    public Content getSignature(MemberDoc member) {
+    public Content getSignature(Element member) {
         Content pre = new HtmlTree(HtmlTag.PRE);
         writer.addAnnotationInfo(member, pre);
         addModifiers(member, pre);
         Content link =
                 writer.getLink(new LinkInfoImpl(configuration,
                         LinkInfoImpl.Kind.MEMBER, getType(member)));
         pre.addContent(link);
         pre.addContent(writer.getSpace());
         if (configuration.linksource) {
-            Content memberName = new StringContent(member.name());
+            Content memberName = new StringContent(name(member));
             writer.addSrcLink(member, memberName, pre);
         } else {
-            addName(member.name(), pre);
+            addName(name(member), pre);
         }
         return pre;
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addDeprecated(MemberDoc member, Content annotationDocTree) {
+    public void addDeprecated(Element member, Content annotationDocTree) {
         addDeprecatedInfo(member, annotationDocTree);
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addComments(MemberDoc member, Content annotationDocTree) {
+    public void addComments(Element member, Content annotationDocTree) {
         addComment(member, annotationDocTree);
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addTags(MemberDoc member, Content annotationDocTree) {
+    public void addTags(Element member, Content annotationDocTree) {
         writer.addTagsInfo(member, annotationDocTree);
     }
 
     /**
      * {@inheritDoc}

@@ -211,79 +225,76 @@
     }
 
     /**
      * {@inheritDoc}
      */
-    public String[] getSummaryTableHeader(ProgramElementDoc member) {
-        String[] header = new String[] {
-            writer.getModifierTypeHeader(),
+    public List<String> getSummaryTableHeader(Element member) {
+        List<String> header = Arrays.asList(writer.getModifierTypeHeader(),
             configuration.getText("doclet.0_and_1",
                     configuration.getText("doclet.Fields"),
-                    configuration.getText("doclet.Description"))
-        };
+                        configuration.getText("doclet.Description")));
         return header;
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addSummaryAnchor(ClassDoc cd, Content memberTree) {
+    public void addSummaryAnchor(TypeElement typeElement, Content memberTree) {
         memberTree.addContent(writer.getMarkerAnchor(
                 SectionName.ANNOTATION_TYPE_FIELD_SUMMARY));
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addInheritedSummaryAnchor(ClassDoc cd, Content inheritedTree) {
+    public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) {
     }
 
     /**
      * {@inheritDoc}
      */
-    public void addInheritedSummaryLabel(ClassDoc cd, Content inheritedTree) {
+    public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) {
     }
 
     /**
      * {@inheritDoc}
      */
-    protected void addSummaryLink(LinkInfoImpl.Kind context, ClassDoc cd, ProgramElementDoc member,
+    protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element member,
             Content tdSummary) {
         Content memberLink = HtmlTree.SPAN(HtmlStyle.memberNameLink,
-                writer.getDocLink(context, (MemberDoc) member, member.name(), false));
+                writer.getDocLink(context, member, name(member), false));
         Content code = HtmlTree.CODE(memberLink);
         tdSummary.addContent(code);
     }
 
     /**
      * {@inheritDoc}
      */
-    protected void addInheritedSummaryLink(ClassDoc cd,
-            ProgramElementDoc member, Content linksTree) {
+    protected void addInheritedSummaryLink(TypeElement typeElement,
+            Element member, Content linksTree) {
         //Not applicable.
     }
 
     /**
      * {@inheritDoc}
      */
-    protected void addSummaryType(ProgramElementDoc member, Content tdSummaryType) {
-        MemberDoc m = (MemberDoc)member;
-        addModifierAndType(m, getType(m), tdSummaryType);
+    protected void addSummaryType(Element member, Content tdSummaryType) {
+        addModifierAndType(member, getType(member), tdSummaryType);
     }
 
     /**
      * {@inheritDoc}
      */
-    protected Content getDeprecatedLink(ProgramElementDoc member) {
+    protected Content getDeprecatedLink(Element member) {
         return writer.getDocLink(LinkInfoImpl.Kind.MEMBER,
-                (MemberDoc) member, ((MemberDoc)member).qualifiedName());
+                member, utils.getFullyQualifiedName(member));
     }
 
     /**
      * {@inheritDoc}
      */
-    protected Content getNavSummaryLink(ClassDoc cd, boolean link) {
+    protected Content getNavSummaryLink(TypeElement typeElement, boolean link) {
         if (link) {
             return writer.getHyperLink(
                     SectionName.ANNOTATION_TYPE_FIELD_SUMMARY,
                     writer.getResource("doclet.navField"));
         } else {

@@ -301,14 +312,13 @@
                     writer.getResource("doclet.navField")));
         } else {
             liNav.addContent(writer.getResource("doclet.navField"));
         }
     }
-
-    private Type getType(MemberDoc member) {
-        if (member instanceof FieldDoc) {
-            return ((FieldDoc) member).type();
-        } else {
-            return ((MethodDoc) member).returnType();
+    private TypeMirror getType(Element member) {
+        if (utils.isConstructor(member))
+            return null;
+        if (utils.isExecutableElement(member))
+            return utils.getReturnType((ExecutableElement)member);
+        return member.asType();
         }
-    }
 }