/* * @(#)MethodSubWriter.java 1.12 98/04/30 * * Copyright 1997, 1998 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. */ package com.sun.tools.doclets.standard; import com.sun.tools.doclets.*; import com.sun.javadoc.*; /** * * @author Robert Field * @author Atul M Dambalkar */ public class MethodSubWriter extends ExecutableMemberSubWriter { MethodSubWriter(SubWriterHolderWriter writer) { super(writer); } public ProgramElementDoc[] members(ClassDoc cd) { return cd.methods(); } public void printSummaryLabel(ClassDoc cd) { writer.boldText("doclet.Method_Summary"); } public void printSummaryAnchor(ClassDoc cd) { writer.anchor("method_summary"); } public void printInheritedSummaryAnchor(ClassDoc cd) { writer.anchor("methods_inherited_from_class_" + cd.qualifiedName()); } public void printInheritedSummaryLabel(ClassDoc cd) { writer.bold(); if (cd.isClass()) { writer.printText("doclet.Methods_Inherited_From_Class"); } else { writer.printText("doclet.Methods_Inherited_From_Interface"); } writer.print(' '); writer.printPreQualifiedClassLink(cd); writer.boldEnd(); } protected void printSummaryType(ProgramElementDoc member) { MethodDoc meth = (MethodDoc)member; printStaticAndType(meth.isStatic(), meth.returnType()); } protected void printReturnTag(Tag[] returns) { if (returns.length > 0) { writer.dt(); writer.boldText("doclet.Returns"); writer.dd(); writer.printCommentTags(returns[0].inlineTags()); } } protected void printOverriden(ClassDoc overriden, MethodDoc method) { if (overriden != null) { String name = method.name(); writer.dt(); writer.boldText("doclet.Overrides"); writer.dd(); if (overriden.isIncluded()) { writer.printClassLink(overriden, name + method.signature(), name, false); } else { // not in this run writer.print(name); } writer.print(' '); writer.printText("doclet.in_class"); writer.print(' '); writer.printClassLink(overriden); } } protected void printTags(ProgramElementDoc member) { MethodDoc method = (MethodDoc)member; ParamTag[] params = method.paramTags(); Tag[] returns = method.tags("return"); ThrowsTag[] thrown = method.throwsTags(); SeeTag[] sees = method.seeTags(); ClassDoc[] intfacs = member.containingClass().interfaces(); ClassDoc overriden = method.overridenClass(); if (params.length + returns.length + thrown.length + intfacs.length + sees.length > 0 || overriden != null) { writer.dd(); writer.dl(); printImplementsInfo(method); printParamTags(params); printReturnTag(returns); printThrowsTags(thrown); printOverriden(overriden, method); writer.printSeeTags(method); writer.dlEnd(); writer.ddEnd(); } } protected void printSignature(ExecutableMemberDoc member) { displayLength = 0; writer.pre(); printModifiers(member); printReturnType((MethodDoc)member); bold(member.name()); printParameters(member); printExceptions(member); writer.preEnd(); } protected void printReturnType(MethodDoc method) { Type type = method.returnType(); if (type != null) { printTypeLink(type); print(' '); } } protected void printHeader(ClassDoc cd) { writer.anchor("method_detail"); writer.printTableHeadingBackground(writer. getText("doclet.Method_Detail")); } protected void printNavSummaryLink(ClassDoc cd, boolean link) { if (link) { writer.printHyperLink("", (cd == null)? "method_summary": "methods_inherited_from_class_" + cd.qualifiedName(), writer.getText("doclet.navMethod")); } else { writer.printText("doclet.navMethod"); } } protected void printNavDetailLink(boolean link) { if (link) { writer.printHyperLink("", "method_detail", writer.getText("doclet.navMethod")); } else { writer.printText("doclet.navMethod"); } } protected void printMemberCommentsFromInterfaces(ProgramElementDoc member) { MethodDoc method = (MethodDoc)member; ClassDoc[] implIntfacs = method.containingClass().interfaces(); if (implIntfacs.length > 0) { MethodDoc implementedMeth = implementedMethod(method, implIntfacs); if (implementedMeth != null) { writer.italics(writer. getText("doclet.Description_Copied_From_Interface")); writer.br(); writer.printCommentTags(implementedMeth.inlineTags()); } } } }