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 }
|