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

Tue, 13 Jan 2009 13:27:14 +0000

author
mcimadamore
date
Tue, 13 Jan 2009 13:27:14 +0000
changeset 184
905e151a185a
parent 182
47a62d8d98b4
child 222
d424ed561993
permissions
-rw-r--r--

6765045: Remove rawtypes warnings from langtools
Summary: Removed all occurrences of rawtypes warnings from langtools
Reviewed-by: jjg, bpatel

duke@1 1 /*
duke@1 2 * Copyright 1998-2006 Sun Microsystems, Inc. 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
duke@1 7 * published by the Free Software Foundation. Sun designates this
duke@1 8 * particular file as subject to the "Classpath" exception as provided
duke@1 9 * by Sun 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 *
duke@1 21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
duke@1 22 * CA 95054 USA or visit www.sun.com if you need additional information or
duke@1 23 * have any questions.
duke@1 24 */
duke@1 25
duke@1 26 package com.sun.tools.doclets.formats.html;
duke@1 27
duke@1 28 import com.sun.tools.doclets.internal.toolkit.*;
duke@1 29 import com.sun.tools.doclets.internal.toolkit.taglets.*;
duke@1 30 import com.sun.tools.doclets.internal.toolkit.util.*;
duke@1 31 import com.sun.javadoc.*;
duke@1 32 import java.util.*;
duke@1 33
duke@1 34 /**
duke@1 35 * Generate serialized form for serializable fields.
duke@1 36 * Documentation denoted by the tags <code>serial</code> and
duke@1 37 * <code>serialField</code> is processed.
duke@1 38 *
duke@1 39 * @author Joe Fialli
duke@1 40 */
duke@1 41 public class HtmlSerialFieldWriter extends FieldWriterImpl
duke@1 42 implements SerializedFormWriter.SerialFieldWriter {
duke@1 43 ProgramElementDoc[] members = null;
duke@1 44
duke@1 45 private boolean printedOverallAnchor = false;
duke@1 46
duke@1 47 private boolean printedFirstMember = false;
duke@1 48
duke@1 49 public HtmlSerialFieldWriter(SubWriterHolderWriter writer,
duke@1 50 ClassDoc classdoc) {
duke@1 51 super(writer, classdoc);
duke@1 52 }
duke@1 53
mcimadamore@184 54 public List<FieldDoc> members(ClassDoc cd) {
duke@1 55 return Util.asList(cd.serializableFields());
duke@1 56 }
duke@1 57
duke@1 58 protected void printTypeLinkNoDimension(Type type) {
duke@1 59 ClassDoc cd = type.asClassDoc();
duke@1 60 //Linking to package private classes in serialized for causes
duke@1 61 //broken links. Don't link to them.
duke@1 62 if (type.isPrimitive() || cd.isPackagePrivate()) {
duke@1 63 print(type.typeName());
duke@1 64 } else {
duke@1 65 writer.printLink(new LinkInfoImpl(
duke@1 66 LinkInfoImpl.CONTEXT_SERIAL_MEMBER, type));
duke@1 67 }
duke@1 68 }
duke@1 69
duke@1 70 public void writeHeader(String heading) {
duke@1 71 if (! printedOverallAnchor) {
duke@1 72 writer.anchor("serializedForm");
duke@1 73 printedOverallAnchor = true;
duke@1 74 writer.printTableHeadingBackground(heading);
duke@1 75 writer.println();
duke@1 76 if (heading.equals(
duke@1 77 configuration().getText("doclet.Serialized_Form_class"))) {
duke@1 78 writer.dl();
duke@1 79 }
duke@1 80 } else {
duke@1 81 writer.printTableHeadingBackground(heading);
duke@1 82 writer.println();
duke@1 83 }
duke@1 84 }
duke@1 85
duke@1 86 public void writeMemberHeader(ClassDoc fieldType, String fieldTypeStr,
duke@1 87 String fieldDimensions, String fieldName) {
duke@1 88 if (printedFirstMember) {
duke@1 89 writer.printMemberHeader();
duke@1 90 }
duke@1 91 printedFirstMember = true;
duke@1 92 writer.h3();
duke@1 93 writer.print(fieldName);
duke@1 94 writer.h3End();
duke@1 95 writer.pre();
duke@1 96 if (fieldType == null) {
duke@1 97 writer.print(fieldTypeStr);
duke@1 98 } else {
duke@1 99 writer.printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_SERIAL_MEMBER,
duke@1 100 fieldType));
duke@1 101 }
duke@1 102 print(fieldDimensions + ' ');
bpatel@182 103 strong(fieldName);
duke@1 104 writer.preEnd();
duke@1 105 writer.dl();
duke@1 106 }
duke@1 107
duke@1 108 /**
duke@1 109 * Write the deprecated information for this member.
duke@1 110 *
duke@1 111 * @param field the field to document.
duke@1 112 */
duke@1 113 public void writeMemberDeprecatedInfo(FieldDoc field) {
duke@1 114 print(((TagletOutputImpl)
duke@1 115 (new DeprecatedTaglet()).getTagletOutput(field,
duke@1 116 writer.getTagletWriterInstance(false))).toString());
duke@1 117 }
duke@1 118
duke@1 119 /**
duke@1 120 * Write the description text for this member.
duke@1 121 *
duke@1 122 * @param field the field to document.
duke@1 123 */
duke@1 124 public void writeMemberDescription(FieldDoc field) {
duke@1 125 if (field.inlineTags().length > 0) {
duke@1 126 writer.dd();
duke@1 127 writer.printInlineComment(field);
duke@1 128 }
duke@1 129 Tag[] tags = field.tags("serial");
duke@1 130 if (tags.length > 0) {
duke@1 131 writer.dt();
duke@1 132 writer.dd();
duke@1 133 writer.printInlineComment(field, tags[0]);
duke@1 134 }
duke@1 135 }
duke@1 136
duke@1 137 /**
duke@1 138 * Write the description text for this member represented by the tag.
duke@1 139 *
duke@1 140 * @param serialFieldTag the field to document (represented by tag).
duke@1 141 */
duke@1 142 public void writeMemberDescription(SerialFieldTag serialFieldTag) {
duke@1 143 writer.dd();
duke@1 144 writer.print(serialFieldTag.description());
duke@1 145 writer.dlEnd();
duke@1 146 }
duke@1 147
duke@1 148 /**
duke@1 149 * Write the tag information for this member.
duke@1 150 *
duke@1 151 * @param field the field to document.
duke@1 152 */
duke@1 153 public void writeMemberTags(FieldDoc field) {
duke@1 154 writer.dl();
duke@1 155 TagletOutputImpl output = new TagletOutputImpl("");
duke@1 156 TagletWriter.genTagOuput(configuration().tagletManager, field,
duke@1 157 configuration().tagletManager.getCustomTags(field),
duke@1 158 writer.getTagletWriterInstance(false), output);
duke@1 159 if (output.toString().length() > 0) {
duke@1 160 print(output.toString());
duke@1 161 }
duke@1 162 writer.dlEnd();
duke@1 163 }
duke@1 164 public void writeMemberFooter(FieldDoc member) {
duke@1 165 writer.dlEnd();
duke@1 166 }
duke@1 167 }

mercurial