src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java

Tue, 14 May 2013 10:14:55 -0700

author
jjg
date
Tue, 14 May 2013 10:14:55 -0700
changeset 1747
df4f44800923
parent 1737
7a9ef837e57f
child 1935
8c55df2442c1
permissions
-rw-r--r--

8012183: replace some uses of Configuration.getText with Configuration.getResource
Reviewed-by: darcy

duke@1 1 /*
jjg@1735 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
duke@1 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@1 4 *
duke@1 5 * This code is free software; you can redistribute it and/or modify it
duke@1 6 * under the terms of the GNU General Public License version 2 only, as
ohair@554 7 * published by the Free Software Foundation. Oracle designates this
duke@1 8 * particular file as subject to the "Classpath" exception as provided
ohair@554 9 * by Oracle in the LICENSE file that accompanied this code.
duke@1 10 *
duke@1 11 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@1 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@1 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@1 14 * version 2 for more details (a copy is included in the LICENSE file that
duke@1 15 * accompanied this code).
duke@1 16 *
duke@1 17 * You should have received a copy of the GNU General Public License version
duke@1 18 * 2 along with this work; if not, write to the Free Software Foundation,
duke@1 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@1 20 *
ohair@554 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@554 22 * or visit www.oracle.com if you need additional information or have any
ohair@554 23 * questions.
duke@1 24 */
duke@1 25
duke@1 26 package com.sun.tools.doclets.formats.html;
duke@1 27
bpatel@233 28 import java.io.*;
bpatel@233 29
bpatel@233 30 import com.sun.javadoc.*;
bpatel@766 31 import com.sun.tools.doclets.formats.html.markup.*;
duke@1 32 import com.sun.tools.doclets.internal.toolkit.*;
duke@1 33 import com.sun.tools.doclets.internal.toolkit.util.*;
duke@1 34
duke@1 35 /**
duke@1 36 * Writes field documentation in HTML format.
duke@1 37 *
jjg@1359 38 * <p><b>This is NOT part of any supported API.
jjg@1359 39 * If you write code that depends on this, you do so at your own risk.
jjg@1359 40 * This code and its internal interfaces are subject to change or
jjg@1359 41 * deletion without notice.</b>
jjg@1359 42 *
duke@1 43 * @author Robert Field
duke@1 44 * @author Atul M Dambalkar
duke@1 45 * @author Jamie Ho (rewrite)
bpatel@243 46 * @author Bhavesh Patel (Modified)
duke@1 47 */
duke@1 48 public class FieldWriterImpl extends AbstractMemberWriter
duke@1 49 implements FieldWriter, MemberSummaryWriter {
duke@1 50
duke@1 51 public FieldWriterImpl(SubWriterHolderWriter writer, ClassDoc classdoc) {
duke@1 52 super(writer, classdoc);
duke@1 53 }
duke@1 54
duke@1 55 public FieldWriterImpl(SubWriterHolderWriter writer) {
duke@1 56 super(writer);
duke@1 57 }
duke@1 58
duke@1 59 /**
bpatel@766 60 * {@inheritDoc}
duke@1 61 */
bpatel@766 62 public Content getMemberSummaryHeader(ClassDoc classDoc,
bpatel@766 63 Content memberSummaryTree) {
bpatel@766 64 memberSummaryTree.addContent(HtmlConstants.START_OF_FIELD_SUMMARY);
bpatel@766 65 Content memberTree = writer.getMemberTreeHeader();
bpatel@766 66 writer.addSummaryHeader(this, classDoc, memberTree);
bpatel@766 67 return memberTree;
duke@1 68 }
duke@1 69
duke@1 70 /**
duke@1 71 * {@inheritDoc}
duke@1 72 */
bpatel@766 73 public Content getFieldDetailsTreeHeader(ClassDoc classDoc,
bpatel@766 74 Content memberDetailsTree) {
bpatel@766 75 memberDetailsTree.addContent(HtmlConstants.START_OF_FIELD_DETAILS);
bpatel@766 76 Content fieldDetailsTree = writer.getMemberTreeHeader();
bpatel@766 77 fieldDetailsTree.addContent(writer.getMarkerAnchor("field_detail"));
bpatel@766 78 Content heading = HtmlTree.HEADING(HtmlConstants.DETAILS_HEADING,
bpatel@766 79 writer.fieldDetailsLabel);
bpatel@766 80 fieldDetailsTree.addContent(heading);
bpatel@766 81 return fieldDetailsTree;
duke@1 82 }
duke@1 83
duke@1 84 /**
bpatel@766 85 * {@inheritDoc}
duke@1 86 */
bpatel@766 87 public Content getFieldDocTreeHeader(FieldDoc field,
bpatel@766 88 Content fieldDetailsTree) {
bpatel@766 89 fieldDetailsTree.addContent(
bpatel@766 90 writer.getMarkerAnchor(field.name()));
bpatel@766 91 Content fieldDocTree = writer.getMemberTreeHeader();
bpatel@766 92 Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING);
bpatel@766 93 heading.addContent(field.name());
bpatel@766 94 fieldDocTree.addContent(heading);
bpatel@766 95 return fieldDocTree;
duke@1 96 }
duke@1 97
duke@1 98 /**
bpatel@766 99 * {@inheritDoc}
duke@1 100 */
bpatel@766 101 public Content getSignature(FieldDoc field) {
bpatel@766 102 Content pre = new HtmlTree(HtmlTag.PRE);
bpatel@766 103 writer.addAnnotationInfo(field, pre);
bpatel@766 104 addModifiers(field, pre);
jjg@1736 105 Content fieldlink = writer.getLink(new LinkInfoImpl(
jjg@1736 106 configuration, LinkInfoImpl.Kind.MEMBER, field.type()));
bpatel@766 107 pre.addContent(fieldlink);
bpatel@766 108 pre.addContent(" ");
jjg@1410 109 if (configuration.linksource) {
bpatel@766 110 Content fieldName = new StringContent(field.name());
bpatel@766 111 writer.addSrcLink(field, fieldName, pre);
bpatel@766 112 } else {
bpatel@766 113 addName(field.name(), pre);
bpatel@766 114 }
bpatel@766 115 return pre;
duke@1 116 }
duke@1 117
duke@1 118 /**
bpatel@766 119 * {@inheritDoc}
duke@1 120 */
bpatel@766 121 public void addDeprecated(FieldDoc field, Content fieldDocTree) {
bpatel@766 122 addDeprecatedInfo(field, fieldDocTree);
duke@1 123 }
duke@1 124
duke@1 125 /**
bpatel@766 126 * {@inheritDoc}
duke@1 127 */
bpatel@766 128 public void addComments(FieldDoc field, Content fieldDocTree) {
duke@1 129 ClassDoc holder = field.containingClass();
duke@1 130 if (field.inlineTags().length > 0) {
duke@1 131 if (holder.equals(classdoc) ||
jjg@1410 132 (! (holder.isPublic() || Util.isLinkable(holder, configuration)))) {
bpatel@766 133 writer.addInlineComment(field, fieldDocTree);
duke@1 134 } else {
jjg@1736 135 Content link =
jjg@1735 136 writer.getDocLink(LinkInfoImpl.Kind.FIELD_DOC_COPY,
duke@1 137 holder, field,
duke@1 138 holder.isIncluded() ?
duke@1 139 holder.typeName() : holder.qualifiedTypeName(),
jjg@1736 140 false);
bpatel@766 141 Content codeLink = HtmlTree.CODE(link);
bpatel@766 142 Content strong = HtmlTree.STRONG(holder.isClass()?
bpatel@766 143 writer.descfrmClassLabel : writer.descfrmInterfaceLabel);
bpatel@766 144 strong.addContent(writer.getSpace());
bpatel@766 145 strong.addContent(codeLink);
bpatel@766 146 fieldDocTree.addContent(HtmlTree.DIV(HtmlStyle.block, strong));
bpatel@766 147 writer.addInlineComment(field, fieldDocTree);
duke@1 148 }
duke@1 149 }
duke@1 150 }
duke@1 151
duke@1 152 /**
bpatel@766 153 * {@inheritDoc}
duke@1 154 */
bpatel@766 155 public void addTags(FieldDoc field, Content fieldDocTree) {
bpatel@766 156 writer.addTagsInfo(field, fieldDocTree);
duke@1 157 }
duke@1 158
duke@1 159 /**
bpatel@766 160 * {@inheritDoc}
duke@1 161 */
bpatel@766 162 public Content getFieldDetails(Content fieldDetailsTree) {
bpatel@766 163 return getMemberTree(fieldDetailsTree);
duke@1 164 }
duke@1 165
duke@1 166 /**
bpatel@766 167 * {@inheritDoc}
duke@1 168 */
bpatel@766 169 public Content getFieldDoc(Content fieldDocTree,
bpatel@766 170 boolean isLastContent) {
bpatel@766 171 return getMemberTree(fieldDocTree, isLastContent);
duke@1 172 }
duke@1 173
duke@1 174 /**
duke@1 175 * Close the writer.
duke@1 176 */
duke@1 177 public void close() throws IOException {
duke@1 178 writer.close();
duke@1 179 }
duke@1 180
duke@1 181 public int getMemberKind() {
duke@1 182 return VisibleMemberMap.FIELDS;
duke@1 183 }
duke@1 184
bpatel@766 185 /**
bpatel@766 186 * {@inheritDoc}
bpatel@766 187 */
bpatel@766 188 public void addSummaryLabel(Content memberTree) {
bpatel@766 189 Content label = HtmlTree.HEADING(HtmlConstants.SUMMARY_HEADING,
bpatel@766 190 writer.getResource("doclet.Field_Summary"));
bpatel@766 191 memberTree.addContent(label);
bpatel@243 192 }
bpatel@243 193
bpatel@766 194 /**
bpatel@766 195 * {@inheritDoc}
bpatel@766 196 */
bpatel@766 197 public String getTableSummary() {
jjg@1410 198 return configuration.getText("doclet.Member_Table_Summary",
jjg@1410 199 configuration.getText("doclet.Field_Summary"),
jjg@1410 200 configuration.getText("doclet.fields"));
bpatel@243 201 }
bpatel@243 202
bpatel@766 203 /**
bpatel@766 204 * {@inheritDoc}
bpatel@766 205 */
jjg@1747 206 public Content getCaption() {
jjg@1747 207 return configuration.getResource("doclet.Fields");
bpatel@766 208 }
bpatel@766 209
bpatel@766 210 /**
bpatel@766 211 * {@inheritDoc}
bpatel@766 212 */
bpatel@766 213 public String[] getSummaryTableHeader(ProgramElementDoc member) {
bpatel@243 214 String[] header = new String[] {
bpatel@243 215 writer.getModifierTypeHeader(),
jjg@1410 216 configuration.getText("doclet.0_and_1",
jjg@1410 217 configuration.getText("doclet.Field"),
jjg@1410 218 configuration.getText("doclet.Description"))
bpatel@243 219 };
bpatel@766 220 return header;
duke@1 221 }
duke@1 222
bpatel@766 223 /**
bpatel@766 224 * {@inheritDoc}
bpatel@766 225 */
bpatel@766 226 public void addSummaryAnchor(ClassDoc cd, Content memberTree) {
bpatel@766 227 memberTree.addContent(writer.getMarkerAnchor("field_summary"));
duke@1 228 }
duke@1 229
bpatel@766 230 /**
bpatel@766 231 * {@inheritDoc}
bpatel@766 232 */
bpatel@766 233 public void addInheritedSummaryAnchor(ClassDoc cd, Content inheritedTree) {
bpatel@766 234 inheritedTree.addContent(writer.getMarkerAnchor(
jjg@1410 235 "fields_inherited_from_class_" + configuration.getClassName(cd)));
duke@1 236 }
duke@1 237
bpatel@766 238 /**
bpatel@766 239 * {@inheritDoc}
bpatel@766 240 */
bpatel@766 241 public void addInheritedSummaryLabel(ClassDoc cd, Content inheritedTree) {
jjg@1737 242 Content classLink = writer.getPreQualifiedClassLink(
jjg@1737 243 LinkInfoImpl.Kind.MEMBER, cd, false);
bpatel@766 244 Content label = new StringContent(cd.isClass() ?
jjg@1410 245 configuration.getText("doclet.Fields_Inherited_From_Class") :
jjg@1410 246 configuration.getText("doclet.Fields_Inherited_From_Interface"));
bpatel@766 247 Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
bpatel@766 248 label);
bpatel@766 249 labelHeading.addContent(writer.getSpace());
bpatel@766 250 labelHeading.addContent(classLink);
bpatel@766 251 inheritedTree.addContent(labelHeading);
duke@1 252 }
duke@1 253
bpatel@766 254 /**
bpatel@766 255 * {@inheritDoc}
bpatel@766 256 */
jjg@1735 257 protected void addSummaryLink(LinkInfoImpl.Kind context, ClassDoc cd, ProgramElementDoc member,
bpatel@766 258 Content tdSummary) {
jjg@1736 259 Content strong = HtmlTree.STRONG(
jjg@1736 260 writer.getDocLink(context, cd , (MemberDoc) member, member.name(), false));
bpatel@766 261 Content code = HtmlTree.CODE(strong);
bpatel@766 262 tdSummary.addContent(code);
duke@1 263 }
duke@1 264
bpatel@766 265 /**
bpatel@766 266 * {@inheritDoc}
bpatel@766 267 */
bpatel@766 268 protected void addInheritedSummaryLink(ClassDoc cd,
bpatel@766 269 ProgramElementDoc member, Content linksTree) {
jjg@1736 270 linksTree.addContent(
jjg@1735 271 writer.getDocLink(LinkInfoImpl.Kind.MEMBER, cd, (MemberDoc)member,
jjg@1736 272 member.name(), false));
duke@1 273 }
duke@1 274
bpatel@766 275 /**
bpatel@766 276 * {@inheritDoc}
bpatel@766 277 */
bpatel@766 278 protected void addSummaryType(ProgramElementDoc member, Content tdSummaryType) {
duke@1 279 FieldDoc field = (FieldDoc)member;
bpatel@766 280 addModifierAndType(field, field.type(), tdSummaryType);
duke@1 281 }
duke@1 282
bpatel@766 283 /**
bpatel@766 284 * {@inheritDoc}
bpatel@766 285 */
bpatel@766 286 protected Content getDeprecatedLink(ProgramElementDoc member) {
jjg@1735 287 return writer.getDocLink(LinkInfoImpl.Kind.MEMBER,
bpatel@766 288 (MemberDoc) member, ((FieldDoc)member).qualifiedName());
duke@1 289 }
duke@1 290
bpatel@766 291 /**
bpatel@766 292 * {@inheritDoc}
bpatel@766 293 */
bpatel@766 294 protected Content getNavSummaryLink(ClassDoc cd, boolean link) {
duke@1 295 if (link) {
jjg@1372 296 return writer.getHyperLink((cd == null)?
bpatel@766 297 "field_summary":
bpatel@766 298 "fields_inherited_from_class_" +
jjg@1410 299 configuration.getClassName(cd),
bpatel@766 300 writer.getResource("doclet.navField"));
duke@1 301 } else {
bpatel@766 302 return writer.getResource("doclet.navField");
duke@1 303 }
duke@1 304 }
duke@1 305
bpatel@766 306 /**
bpatel@766 307 * {@inheritDoc}
bpatel@766 308 */
bpatel@766 309 protected void addNavDetailLink(boolean link, Content liNav) {
duke@1 310 if (link) {
jjg@1372 311 liNav.addContent(writer.getHyperLink("field_detail",
bpatel@766 312 writer.getResource("doclet.navField")));
duke@1 313 } else {
bpatel@766 314 liNav.addContent(writer.getResource("doclet.navField"));
duke@1 315 }
duke@1 316 }
duke@1 317 }

mercurial