001: /*
002: * Copyright 1998-2003 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004: *
005: * This code is free software; you can redistribute it and/or modify it
006: * under the terms of the GNU General Public License version 2 only, as
007: * published by the Free Software Foundation. Sun designates this
008: * particular file as subject to the "Classpath" exception as provided
009: * by Sun in the LICENSE file that accompanied this code.
010: *
011: * This code is distributed in the hope that it will be useful, but WITHOUT
012: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014: * version 2 for more details (a copy is included in the LICENSE file that
015: * accompanied this code).
016: *
017: * You should have received a copy of the GNU General Public License version
018: * 2 along with this work; if not, write to the Free Software Foundation,
019: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020: *
021: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022: * CA 95054 USA or visit www.sun.com if you need additional information or
023: * have any questions.
024: */
025:
026: package com.sun.tools.doclets.formats.html;
027:
028: import com.sun.tools.doclets.internal.toolkit.*;
029: import com.sun.tools.doclets.internal.toolkit.taglets.*;
030: import com.sun.javadoc.*;
031:
032: /**
033: * Generate serialized form for Serializable/Externalizable methods.
034: * Documentation denoted by the <code>serialData</code> tag is processed.
035: *
036: * @author Joe Fialli
037: */
038: public class HtmlSerialMethodWriter extends MethodWriterImpl implements
039: SerializedFormWriter.SerialMethodWriter {
040:
041: private boolean printedFirstMember = false;
042:
043: public HtmlSerialMethodWriter(SubWriterHolderWriter writer,
044: ClassDoc classdoc) {
045: super (writer, classdoc);
046: }
047:
048: public void writeHeader(String heading) {
049: writer.anchor("serialized_methods");
050: writer.printTableHeadingBackground(heading);
051: writer.p();
052: }
053:
054: public void writeNoCustomizationMsg(String msg) {
055: writer.print(msg);
056: writer.p();
057: }
058:
059: public void writeMemberHeader(MethodDoc member) {
060: if (printedFirstMember) {
061: writer.printMemberHeader();
062: }
063: printedFirstMember = true;
064: writer.anchor(member);
065: printHead(member);
066: writeSignature(member);
067: }
068:
069: public void writeMemberFooter(MethodDoc member) {
070: writer.dlEnd();
071: }
072:
073: public void writeDeprecatedMemberInfo(MethodDoc member) {
074: print(((TagletOutputImpl) (new DeprecatedTaglet())
075: .getTagletOutput(member, writer
076: .getTagletWriterInstance(false))).toString());
077: }
078:
079: public void writeMemberDescription(MethodDoc member) {
080: printComment(member);
081: }
082:
083: public void writeMemberTags(MethodDoc member) {
084: writer.dd();
085: writer.dl();
086: TagletOutputImpl output = new TagletOutputImpl("");
087: TagletManager tagletManager = ConfigurationImpl.getInstance().tagletManager;
088: TagletWriter.genTagOuput(tagletManager, member, tagletManager
089: .getSerializedFormTags(), writer
090: .getTagletWriterInstance(false), output);
091: print(output.toString());
092: MethodDoc method = (MethodDoc) member;
093: if (method.name().compareTo("writeExternal") == 0
094: && method.tags("serialData").length == 0) {
095: serialWarning(member.position(),
096: "doclet.MissingSerialDataTag", method
097: .containingClass().qualifiedName(), method
098: .name());
099: }
100: writer.ddEnd();
101: writer.dlEnd();
102: }
103:
104: protected void printTypeLinkNoDimension(Type type) {
105: ClassDoc cd = type.asClassDoc();
106: if (type.isPrimitive() || cd.isPackagePrivate()) {
107: print(type.typeName());
108: } else {
109: writer.printLink(new LinkInfoImpl(
110: LinkInfoImpl.CONTEXT_SERIAL_MEMBER, type));
111: }
112: }
113: }
|