< prev index next >

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

Print this page
rev 47482 : 8190295: Introduce a new Table builder class
rev 47486 : 8190821: Introduce a new Links builder class


  23  * questions.
  24  */
  25 
  26 package jdk.javadoc.internal.doclets.formats.html;
  27 
  28 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
  29 
  30 import java.util.Arrays;
  31 import java.util.List;
  32 
  33 import javax.lang.model.element.Element;
  34 import javax.lang.model.element.ExecutableElement;
  35 import javax.lang.model.element.TypeElement;
  36 import javax.lang.model.type.TypeMirror;
  37 
  38 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
  39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
  40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
  41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
  42 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;

  43 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
  44 import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeRequiredMemberWriter;
  45 import jdk.javadoc.internal.doclets.toolkit.Content;
  46 import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
  47 
  48 
  49 /**
  50  * Writes annotation type required member documentation in HTML format.
  51  *
  52  *  <p><b>This is NOT part of any supported API.
  53  *  If you write code that depends on this, you do so at your own risk.
  54  *  This code and its internal interfaces are subject to change or
  55  *  deletion without notice.</b>
  56  *
  57  * @author Jamie Ho
  58  * @author Bhavesh Patel (Modified)
  59  */
  60 public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
  61     implements AnnotationTypeRequiredMemberWriter, MemberSummaryWriter {
  62 


  93     /**
  94      * {@inheritDoc}
  95      */
  96     public void addMemberTree(Content memberSummaryTree, Content memberTree) {
  97         writer.addMemberTree(memberSummaryTree, memberTree);
  98     }
  99 
 100     /**
 101      * {@inheritDoc}
 102      */
 103     public void addAnnotationDetailsMarker(Content memberDetails) {
 104         memberDetails.addContent(HtmlConstants.START_OF_ANNOTATION_TYPE_DETAILS);
 105     }
 106 
 107     /**
 108      * {@inheritDoc}
 109      */
 110     public void addAnnotationDetailsTreeHeader(TypeElement te,
 111             Content memberDetailsTree) {
 112         if (!writer.printedAnnotationHeading) {
 113             memberDetailsTree.addContent(writer.getMarkerAnchor(
 114                     SectionName.ANNOTATION_TYPE_ELEMENT_DETAIL));
 115             Content heading = HtmlTree.HEADING(HtmlConstants.DETAILS_HEADING,
 116                     contents.annotationTypeDetailsLabel);
 117             memberDetailsTree.addContent(heading);
 118             writer.printedAnnotationHeading = true;
 119         }
 120     }
 121 
 122     /**
 123      * {@inheritDoc}
 124      */
 125     public Content getAnnotationDocTreeHeader(Element member,
 126             Content annotationDetailsTree) {
 127         String simpleName = name(member);
 128         annotationDetailsTree.addContent(writer.getMarkerAnchor(simpleName +
 129                 utils.signature((ExecutableElement) member)));
 130         Content annotationDocTree = writer.getMemberTreeHeader();
 131         Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING);
 132         heading.addContent(simpleName);
 133         annotationDocTree.addContent(heading);
 134         return annotationDocTree;
 135     }
 136 
 137     /**
 138      * {@inheritDoc}
 139      */
 140     public Content getSignature(Element member) {
 141         Content pre = new HtmlTree(HtmlTag.PRE);
 142         writer.addAnnotationInfo(member, pre);
 143         addModifiers(member, pre);
 144         Content link =
 145                 writer.getLink(new LinkInfoImpl(configuration,
 146                         LinkInfoImpl.Kind.MEMBER, getType(member)));
 147         pre.addContent(link);
 148         pre.addContent(Contents.SPACE);
 149         if (configuration.linksource) {


 232     }
 233 
 234     /**
 235      * {@inheritDoc}
 236      */
 237     @Override
 238     protected Table createSummaryTable() {
 239         return new Table(configuration.htmlVersion, HtmlStyle.memberSummary)
 240                 .setSummary(getTableSummary())
 241                 .setCaption(getCaption())
 242                 .setHeader(getSummaryTableHeader(typeElement))
 243                 .setRowScopeColumn(1)
 244                 .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colSecond, HtmlStyle.colLast)
 245                 .setUseTBody(false);  // temporary? compatibility mode for TBody
 246     }
 247 
 248     /**
 249      * {@inheritDoc}
 250      */
 251     public void addSummaryAnchor(TypeElement typeElement, Content memberTree) {
 252         memberTree.addContent(writer.getMarkerAnchor(
 253                 SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY));
 254     }
 255 
 256     /**
 257      * {@inheritDoc}
 258      */
 259     public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) {
 260     }
 261 
 262     /**
 263      * {@inheritDoc}
 264      */
 265     public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) {
 266     }
 267 
 268     /**
 269      * {@inheritDoc}
 270      */
 271     protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element member,
 272             Content tdSummary) {


 287     /**
 288      * {@inheritDoc}
 289      */
 290     protected void addSummaryType(Element member, Content tdSummaryType) {
 291         addModifierAndType(member, getType(member), tdSummaryType);
 292     }
 293 
 294     /**
 295      * {@inheritDoc}
 296      */
 297     protected Content getDeprecatedLink(Element member) {
 298         String name = utils.getFullyQualifiedName(member) + "." + member.getSimpleName();
 299         return writer.getDocLink(LinkInfoImpl.Kind.MEMBER, member, name);
 300     }
 301 
 302     /**
 303      * {@inheritDoc}
 304      */
 305     protected Content getNavSummaryLink(TypeElement typeElement, boolean link) {
 306         if (link) {
 307             return writer.getHyperLink(
 308                     SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY,
 309                     contents.navAnnotationTypeRequiredMember);
 310         } else {
 311             return contents.navAnnotationTypeRequiredMember;
 312         }
 313     }
 314 
 315     /**
 316      * {@inheritDoc}
 317      */
 318     protected void addNavDetailLink(boolean link, Content liNav) {
 319         if (link) {
 320             liNav.addContent(writer.getHyperLink(
 321                     SectionName.ANNOTATION_TYPE_ELEMENT_DETAIL,
 322                     contents.navAnnotationTypeMember));
 323         } else {
 324             liNav.addContent(contents.navAnnotationTypeMember);
 325         }
 326     }
 327 
 328     private TypeMirror getType(Element member) {
 329         return utils.isExecutableElement(member)
 330                 ? utils.getReturnType((ExecutableElement) member)
 331                 : member.asType();
 332     }
 333 }


  23  * questions.
  24  */
  25 
  26 package jdk.javadoc.internal.doclets.formats.html;
  27 
  28 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
  29 
  30 import java.util.Arrays;
  31 import java.util.List;
  32 
  33 import javax.lang.model.element.Element;
  34 import javax.lang.model.element.ExecutableElement;
  35 import javax.lang.model.element.TypeElement;
  36 import javax.lang.model.type.TypeMirror;
  37 
  38 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
  39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
  40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
  41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
  42 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
  43 import jdk.javadoc.internal.doclets.formats.html.markup.Links;
  44 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
  45 import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeRequiredMemberWriter;
  46 import jdk.javadoc.internal.doclets.toolkit.Content;
  47 import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
  48 
  49 
  50 /**
  51  * Writes annotation type required member documentation in HTML format.
  52  *
  53  *  <p><b>This is NOT part of any supported API.
  54  *  If you write code that depends on this, you do so at your own risk.
  55  *  This code and its internal interfaces are subject to change or
  56  *  deletion without notice.</b>
  57  *
  58  * @author Jamie Ho
  59  * @author Bhavesh Patel (Modified)
  60  */
  61 public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
  62     implements AnnotationTypeRequiredMemberWriter, MemberSummaryWriter {
  63 


  94     /**
  95      * {@inheritDoc}
  96      */
  97     public void addMemberTree(Content memberSummaryTree, Content memberTree) {
  98         writer.addMemberTree(memberSummaryTree, memberTree);
  99     }
 100 
 101     /**
 102      * {@inheritDoc}
 103      */
 104     public void addAnnotationDetailsMarker(Content memberDetails) {
 105         memberDetails.addContent(HtmlConstants.START_OF_ANNOTATION_TYPE_DETAILS);
 106     }
 107 
 108     /**
 109      * {@inheritDoc}
 110      */
 111     public void addAnnotationDetailsTreeHeader(TypeElement te,
 112             Content memberDetailsTree) {
 113         if (!writer.printedAnnotationHeading) {
 114             memberDetailsTree.addContent(links.createAnchor(
 115                     SectionName.ANNOTATION_TYPE_ELEMENT_DETAIL));
 116             Content heading = HtmlTree.HEADING(HtmlConstants.DETAILS_HEADING,
 117                     contents.annotationTypeDetailsLabel);
 118             memberDetailsTree.addContent(heading);
 119             writer.printedAnnotationHeading = true;
 120         }
 121     }
 122 
 123     /**
 124      * {@inheritDoc}
 125      */
 126     @Override
 127     public Content getAnnotationDocTreeHeader(Element member, Content annotationDetailsTree) {
 128         String simpleName = name(member);
 129         annotationDetailsTree.addContent(links.createAnchor(
 130                 simpleName + utils.signature((ExecutableElement) member)));
 131         Content annotationDocTree = writer.getMemberTreeHeader();
 132         Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING);
 133         heading.addContent(simpleName);
 134         annotationDocTree.addContent(heading);
 135         return annotationDocTree;
 136     }
 137 
 138     /**
 139      * {@inheritDoc}
 140      */
 141     public Content getSignature(Element member) {
 142         Content pre = new HtmlTree(HtmlTag.PRE);
 143         writer.addAnnotationInfo(member, pre);
 144         addModifiers(member, pre);
 145         Content link =
 146                 writer.getLink(new LinkInfoImpl(configuration,
 147                         LinkInfoImpl.Kind.MEMBER, getType(member)));
 148         pre.addContent(link);
 149         pre.addContent(Contents.SPACE);
 150         if (configuration.linksource) {


 233     }
 234 
 235     /**
 236      * {@inheritDoc}
 237      */
 238     @Override
 239     protected Table createSummaryTable() {
 240         return new Table(configuration.htmlVersion, HtmlStyle.memberSummary)
 241                 .setSummary(getTableSummary())
 242                 .setCaption(getCaption())
 243                 .setHeader(getSummaryTableHeader(typeElement))
 244                 .setRowScopeColumn(1)
 245                 .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colSecond, HtmlStyle.colLast)
 246                 .setUseTBody(false);  // temporary? compatibility mode for TBody
 247     }
 248 
 249     /**
 250      * {@inheritDoc}
 251      */
 252     public void addSummaryAnchor(TypeElement typeElement, Content memberTree) {
 253         memberTree.addContent(links.createAnchor(
 254                 SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY));
 255     }
 256 
 257     /**
 258      * {@inheritDoc}
 259      */
 260     public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) {
 261     }
 262 
 263     /**
 264      * {@inheritDoc}
 265      */
 266     public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) {
 267     }
 268 
 269     /**
 270      * {@inheritDoc}
 271      */
 272     protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element member,
 273             Content tdSummary) {


 288     /**
 289      * {@inheritDoc}
 290      */
 291     protected void addSummaryType(Element member, Content tdSummaryType) {
 292         addModifierAndType(member, getType(member), tdSummaryType);
 293     }
 294 
 295     /**
 296      * {@inheritDoc}
 297      */
 298     protected Content getDeprecatedLink(Element member) {
 299         String name = utils.getFullyQualifiedName(member) + "." + member.getSimpleName();
 300         return writer.getDocLink(LinkInfoImpl.Kind.MEMBER, member, name);
 301     }
 302 
 303     /**
 304      * {@inheritDoc}
 305      */
 306     protected Content getNavSummaryLink(TypeElement typeElement, boolean link) {
 307         if (link) {
 308             return Links.createLink(
 309                     SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY,
 310                     contents.navAnnotationTypeRequiredMember);
 311         } else {
 312             return contents.navAnnotationTypeRequiredMember;
 313         }
 314     }
 315 
 316     /**
 317      * {@inheritDoc}
 318      */
 319     protected void addNavDetailLink(boolean link, Content liNav) {
 320         if (link) {
 321             liNav.addContent(Links.createLink(
 322                     SectionName.ANNOTATION_TYPE_ELEMENT_DETAIL,
 323                     contents.navAnnotationTypeMember));
 324         } else {
 325             liNav.addContent(contents.navAnnotationTypeMember);
 326         }
 327     }
 328 
 329     private TypeMirror getType(Element member) {
 330         return utils.isExecutableElement(member)
 331                 ? utils.getReturnType((ExecutableElement) member)
 332                 : member.asType();
 333     }
 334 }
< prev index next >