src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java
changeset 49879 601277b1d582
parent 47216 71c04702a3d5
child 54060 53a95878619f
equal deleted inserted replaced
49878:2422d4e027b0 49879:601277b1d582
     1 /*
     1 /*
     2  * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    32 
    32 
    33 import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeRequiredMemberWriter;
    33 import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeRequiredMemberWriter;
    34 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
    34 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
    35 import jdk.javadoc.internal.doclets.toolkit.Content;
    35 import jdk.javadoc.internal.doclets.toolkit.Content;
    36 import jdk.javadoc.internal.doclets.toolkit.DocletException;
    36 import jdk.javadoc.internal.doclets.toolkit.DocletException;
    37 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap;
    37 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable;
    38 
    38 
       
    39 import static jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable.Kind.*;
    39 
    40 
    40 /**
    41 /**
    41  * Builds documentation for required annotation type members.
    42  * Builds documentation for required annotation type members.
    42  *
    43  *
    43  *  <p><b>This is NOT part of any supported API.
    44  *  <p><b>This is NOT part of any supported API.
    48  * @author Jamie Ho
    49  * @author Jamie Ho
    49  * @author Bhavesh Patel (Modified)
    50  * @author Bhavesh Patel (Modified)
    50  */
    51  */
    51 public class AnnotationTypeRequiredMemberBuilder extends AbstractMemberBuilder {
    52 public class AnnotationTypeRequiredMemberBuilder extends AbstractMemberBuilder {
    52 
    53 
    53     /**
       
    54      * The annotation type whose members are being documented.
       
    55      */
       
    56     protected TypeElement typeElement;
       
    57 
       
    58     /**
       
    59      * The visible members for the given class.
       
    60      */
       
    61     protected VisibleMemberMap visibleMemberMap;
       
    62 
    54 
    63     /**
    55     /**
    64      * The writer to output the member documentation.
    56      * The writer to output the member documentation.
    65      */
    57      */
    66     protected AnnotationTypeRequiredMemberWriter writer;
    58     protected AnnotationTypeRequiredMemberWriter writer;
    67 
    59 
    68     /**
    60     /**
    69      * The list of members being documented.
    61      * The list of members being documented.
    70      */
    62      */
    71     protected List<Element> members;
    63     protected List<? extends Element> members;
    72 
    64 
    73     /**
    65     /**
    74      * The index of the current member that is being documented at this point
    66      * The index of the current member that is being documented at this point
    75      * in time.
    67      * in time.
    76      */
    68      */
    85      * @param memberType the kind of member this builder processes.
    77      * @param memberType the kind of member this builder processes.
    86      */
    78      */
    87     protected AnnotationTypeRequiredMemberBuilder(Context context,
    79     protected AnnotationTypeRequiredMemberBuilder(Context context,
    88             TypeElement typeElement,
    80             TypeElement typeElement,
    89             AnnotationTypeRequiredMemberWriter writer,
    81             AnnotationTypeRequiredMemberWriter writer,
    90             VisibleMemberMap.Kind memberType) {
    82             VisibleMemberTable.Kind memberType) {
    91         super(context);
    83         super(context, typeElement);
    92         this.typeElement = typeElement;
       
    93         this.writer = writer;
    84         this.writer = writer;
    94         this.visibleMemberMap = configuration.getVisibleMemberMap(typeElement, memberType);
    85         this.members = getVisibleMembers(memberType);
    95         this.members = this.visibleMemberMap.getMembers(typeElement);
       
    96     }
    86     }
    97 
    87 
    98 
    88 
    99     /**
    89     /**
   100      * Construct a new AnnotationTypeMemberBuilder.
    90      * Construct a new AnnotationTypeMemberBuilder.
   106      */
    96      */
   107     public static AnnotationTypeRequiredMemberBuilder getInstance(
    97     public static AnnotationTypeRequiredMemberBuilder getInstance(
   108             Context context, TypeElement typeElement,
    98             Context context, TypeElement typeElement,
   109             AnnotationTypeRequiredMemberWriter writer) {
    99             AnnotationTypeRequiredMemberWriter writer) {
   110         return new AnnotationTypeRequiredMemberBuilder(context, typeElement,
   100         return new AnnotationTypeRequiredMemberBuilder(context, typeElement,
   111                     writer,
   101                 writer, ANNOTATION_TYPE_MEMBER_REQUIRED);
   112                     VisibleMemberMap.Kind.ANNOTATION_TYPE_MEMBER_REQUIRED);
       
   113     }
   102     }
   114 
   103 
   115     /**
   104     /**
   116      * Returns whether or not there are members to document.
   105      * Returns whether or not there are members to document.
   117      * @return whether or not there are members to document
   106      * @return whether or not there are members to document