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

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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,31 @@
  * 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 java.util.Arrays;
+import java.util.List;
 
-import com.sun.javadoc.*;
-import com.sun.tools.doclets.formats.html.markup.*;
-import com.sun.tools.doclets.internal.toolkit.*;
+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.AnnotationTypeRequiredMemberWriter;
+import jdk.javadoc.internal.doclets.toolkit.Content;
+import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
+
+
 /**
  * Writes annotation type required member 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.

@@ -50,23 +63,23 @@
      *
      * @param writer         the writer that will write the output.
      * @param annotationType the AnnotationType that holds this member.
      */
     public AnnotationTypeRequiredMemberWriterImpl(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_REQUIRED_MEMBER_SUMMARY);
         Content memberTree = writer.getMemberTreeHeader();
-        writer.addSummaryHeader(this, classDoc, memberTree);
+        writer.addSummaryHeader(this, typeElement, memberTree);
         return memberTree;
     }
 
     /**
      * {@inheritDoc}

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

@@ -105,61 +118,61 @@
     }
 
     /**
      * {@inheritDoc}
      */
-    public Content getAnnotationDocTreeHeader(MemberDoc member,
+    public Content getAnnotationDocTreeHeader(Element member,
             Content annotationDetailsTree) {
-        annotationDetailsTree.addContent(
-                writer.getMarkerAnchor(member.name() +
-                ((ExecutableMemberDoc) member).signature()));
+        String simpleName = name(member);
+        annotationDetailsTree.addContent(writer.getMarkerAnchor(simpleName +
+                utils.signature((ExecutableElement) member)));
         Content annotationDocTree = writer.getMemberTreeHeader();
         Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING);
-        heading.addContent(member.name());
+        heading.addContent(simpleName);
         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}

@@ -213,79 +226,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.Annotation_Type_Required_Member"),
-                    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_REQUIRED_ELEMENT_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) {
-        return writer.getDocLink(LinkInfoImpl.Kind.MEMBER,
-                (MemberDoc) member, ((MemberDoc)member).qualifiedName());
+    protected Content getDeprecatedLink(Element member) {
+        String name = utils.getFullyQualifiedName(member) + "." + member.getSimpleName();
+        return writer.getDocLink(LinkInfoImpl.Kind.MEMBER, member, name);
     }
 
     /**
      * {@inheritDoc}
      */
-    protected Content getNavSummaryLink(ClassDoc cd, boolean link) {
+    protected Content getNavSummaryLink(TypeElement typeElement, boolean link) {
         if (link) {
             return writer.getHyperLink(
                     SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY,
                     writer.getResource("doclet.navAnnotationTypeRequiredMember"));
         } else {

@@ -304,13 +314,11 @@
         } else {
             liNav.addContent(writer.getResource("doclet.navAnnotationTypeMember"));
         }
     }
 
-    private Type getType(MemberDoc member) {
-        if (member instanceof FieldDoc) {
-            return ((FieldDoc) member).type();
-        } else {
-            return ((MethodDoc) member).returnType();
+    private TypeMirror getType(Element member) {
+        return utils.isExecutableElement(member)
+                ? utils.getReturnType((ExecutableElement) member)
+                : member.asType();
         }
-    }
 }