27
28 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
29 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
30
31 import java.util.*;
32 import java.util.stream.Collectors;
33
34 import javax.lang.model.element.Element;
35 import javax.lang.model.element.ExecutableElement;
36 import javax.lang.model.element.Modifier;
37 import javax.lang.model.element.TypeElement;
38 import javax.lang.model.element.TypeParameterElement;
39 import javax.lang.model.type.TypeMirror;
40
41 import com.sun.source.doctree.DocTree;
42 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
43 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
44 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
45 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
46 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
47 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
48 import jdk.javadoc.internal.doclets.toolkit.Content;
49 import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
50 import jdk.javadoc.internal.doclets.toolkit.Resources;
51 import jdk.javadoc.internal.doclets.toolkit.taglets.DeprecatedTaglet;
52 import jdk.javadoc.internal.doclets.toolkit.util.Utils;
53 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap;
54
55 import static javax.lang.model.element.Modifier.*;
56
57 /**
58 * The base class for member writers.
59 *
60 * <p><b>This is NOT part of any supported API.
61 * If you write code that depends on this, you do so at your own risk.
62 * This code and its internal interfaces are subject to change or
63 * deletion without notice.</b>
64 *
65 * @author Robert Field
66 * @author Atul M Dambalkar
67 * @author Jamie Ho (Re-write)
68 * @author Bhavesh Patel (Modified)
69 */
70 public abstract class AbstractMemberWriter implements MemberSummaryWriter {
71
72 protected final HtmlConfiguration configuration;
73 protected final Utils utils;
74 protected final SubWriterHolderWriter writer;
75 protected final Contents contents;
76 protected final Resources resources;
77
78 protected final TypeElement typeElement;
79 public final boolean nodepr;
80
81 protected boolean printedSummaryHeader = false;
82
83 public AbstractMemberWriter(SubWriterHolderWriter writer, TypeElement typeElement) {
84 this.configuration = writer.configuration;
85 this.writer = writer;
86 this.nodepr = configuration.nodeprecated;
87 this.typeElement = typeElement;
88 this.utils = configuration.utils;
89 this.contents = configuration.contents;
90 this.resources = configuration.resources;
91 }
92
93 public AbstractMemberWriter(SubWriterHolderWriter writer) {
94 this(writer, null);
95 }
96
97 /*** abstracts ***/
98
99 /**
100 * Add the summary label for the member.
101 *
102 * @param memberTree the content tree to which the label will be added
103 */
104 public abstract void addSummaryLabel(Content memberTree);
105
106 /**
107 * Get the summary for the member summary table.
108 *
109 * @return a string for the table summary
110 */
502 return;
503 }
504 superClass = utils.getSuperClass(superClass);
505 }
506 liNav.addContent(getNavSummaryLink(null, false));
507 }
508
509 protected void serialWarning(Element e, String key, String a1, String a2) {
510 if (configuration.serialwarn) {
511 configuration.messages.warning(e, key, a1, a2);
512 }
513 }
514
515 /**
516 * Add the member summary for the given class.
517 *
518 * @param tElement the class that is being documented
519 * @param member the member being documented
520 * @param firstSentenceTags the first sentence tags to be added to the summary
521 */
522 public void addMemberSummary(TypeElement tElement, Element member,
523 List<? extends DocTree> firstSentenceTags) {
524 if (tElement != typeElement) {
525 throw new IllegalStateException();
526 }
527 Table table = getSummaryTable();
528 List<Content> rowContents = new ArrayList<>();
529 Content summaryType = new ContentBuilder();
530 addSummaryType(member, summaryType);
531 if (!summaryType.isEmpty())
532 rowContents.add(summaryType);
533 Content summaryLink = new ContentBuilder();
534 addSummaryLink(tElement, member, summaryLink);
535 rowContents.add(summaryLink);
536 Content desc = new ContentBuilder();
537 writer.addSummaryLinkComment(this, member, firstSentenceTags, desc);
538 rowContents.add(desc);
539 table.addRow(member, rowContents);
540 }
541
|
27
28 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
29 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
30
31 import java.util.*;
32 import java.util.stream.Collectors;
33
34 import javax.lang.model.element.Element;
35 import javax.lang.model.element.ExecutableElement;
36 import javax.lang.model.element.Modifier;
37 import javax.lang.model.element.TypeElement;
38 import javax.lang.model.element.TypeParameterElement;
39 import javax.lang.model.type.TypeMirror;
40
41 import com.sun.source.doctree.DocTree;
42 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
43 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
44 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
45 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
46 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
47 import jdk.javadoc.internal.doclets.formats.html.markup.Links;
48 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
49 import jdk.javadoc.internal.doclets.toolkit.Content;
50 import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
51 import jdk.javadoc.internal.doclets.toolkit.Resources;
52 import jdk.javadoc.internal.doclets.toolkit.taglets.DeprecatedTaglet;
53 import jdk.javadoc.internal.doclets.toolkit.util.Utils;
54 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap;
55
56 import static javax.lang.model.element.Modifier.*;
57
58 /**
59 * The base class for member writers.
60 *
61 * <p><b>This is NOT part of any supported API.
62 * If you write code that depends on this, you do so at your own risk.
63 * This code and its internal interfaces are subject to change or
64 * deletion without notice.</b>
65 *
66 * @author Robert Field
67 * @author Atul M Dambalkar
68 * @author Jamie Ho (Re-write)
69 * @author Bhavesh Patel (Modified)
70 */
71 public abstract class AbstractMemberWriter implements MemberSummaryWriter {
72
73 protected final HtmlConfiguration configuration;
74 protected final Utils utils;
75 protected final SubWriterHolderWriter writer;
76 protected final Contents contents;
77 protected final Resources resources;
78 protected final Links links;
79
80 protected final TypeElement typeElement;
81 public final boolean nodepr;
82
83 protected boolean printedSummaryHeader = false;
84
85 public AbstractMemberWriter(SubWriterHolderWriter writer, TypeElement typeElement) {
86 this.configuration = writer.configuration;
87 this.writer = writer;
88 this.nodepr = configuration.nodeprecated;
89 this.typeElement = typeElement;
90 this.utils = configuration.utils;
91 this.contents = configuration.contents;
92 this.resources = configuration.resources;
93 this.links = configuration.links;
94 }
95
96 public AbstractMemberWriter(SubWriterHolderWriter writer) {
97 this(writer, null);
98 }
99
100 /*** abstracts ***/
101
102 /**
103 * Add the summary label for the member.
104 *
105 * @param memberTree the content tree to which the label will be added
106 */
107 public abstract void addSummaryLabel(Content memberTree);
108
109 /**
110 * Get the summary for the member summary table.
111 *
112 * @return a string for the table summary
113 */
505 return;
506 }
507 superClass = utils.getSuperClass(superClass);
508 }
509 liNav.addContent(getNavSummaryLink(null, false));
510 }
511
512 protected void serialWarning(Element e, String key, String a1, String a2) {
513 if (configuration.serialwarn) {
514 configuration.messages.warning(e, key, a1, a2);
515 }
516 }
517
518 /**
519 * Add the member summary for the given class.
520 *
521 * @param tElement the class that is being documented
522 * @param member the member being documented
523 * @param firstSentenceTags the first sentence tags to be added to the summary
524 */
525 @Override
526 public void addMemberSummary(TypeElement tElement, Element member,
527 List<? extends DocTree> firstSentenceTags) {
528 if (tElement != typeElement) {
529 throw new IllegalStateException();
530 }
531 Table table = getSummaryTable();
532 List<Content> rowContents = new ArrayList<>();
533 Content summaryType = new ContentBuilder();
534 addSummaryType(member, summaryType);
535 if (!summaryType.isEmpty())
536 rowContents.add(summaryType);
537 Content summaryLink = new ContentBuilder();
538 addSummaryLink(tElement, member, summaryLink);
539 rowContents.add(summaryLink);
540 Content desc = new ContentBuilder();
541 writer.addSummaryLinkComment(this, member, firstSentenceTags, desc);
542 rowContents.add(desc);
543 table.addRow(member, rowContents);
544 }
545
|