/* * @(#)ConstructorSubWriter.java 1.17 00/02/02 * * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. * * This software is the proprietary information of Sun Microsystems, Inc. * Use is subject to license terms. * */ package com.sun.tools.doclets.standard; import com.sun.tools.doclets.*; import com.sun.javadoc.*; import java.util.*; /** * * @author Robert Field * @author Atul M Dambalkar */ public class ConstructorSubWriter extends ExecutableMemberSubWriter { protected boolean foundNonPublicMember = false; public ConstructorSubWriter(SubWriterHolderWriter writer, ClassDoc classdoc) { super(writer, classdoc); checkForNonPublicMembers(visibleMemberMap.getMembersFor(classdoc)); } public ConstructorSubWriter(SubWriterHolderWriter writer) { super(writer); } public void printSummaryLabel(ClassDoc cd) { writer.boldText("doclet.Constructor_Summary"); } public void printSummaryAnchor(ClassDoc cd) { writer.anchor("constructor_summary"); } public void printInheritedSummaryAnchor(ClassDoc cd) { } // no such public void printInheritedSummaryLabel(ClassDoc cd) { // no such } public int getMemberKind() { return VisibleMemberMap.CONSTRUCTORS; } protected void printSummaryType(ProgramElementDoc member) { if (foundNonPublicMember) { writer.printTypeSummaryHeader(); if (member.isProtected()) { print("protected "); } else if (member.isPrivate()) { print("private "); } else if (member.isPublic()) { writer.space(); } else { writer.printText("doclet.Package_private"); } writer.printTypeSummaryFooter(); } } protected void printTags(ProgramElementDoc member) { ParamTag[] params = ((ConstructorDoc)member).paramTags(); ThrowsTag[] thrown = ((ConstructorDoc)member).throwsTags(); Tag[] sinces = member.tags("since"); SeeTag[] sees = member.seeTags(); if (params.length + thrown.length + sees.length + sinces.length > 0) { writer.dd(); writer.dl(); printParamTags(params); printThrowsTags(thrown); writer.printSinceTag(member); writer.printSeeTags(member); writer.dlEnd(); writer.ddEnd(); } } protected void printHeader(ClassDoc cd) { writer.anchor("constructor_detail"); writer.printTableHeadingBackground(writer. getText("doclet.Constructor_Detail")); } protected void navSummaryLink() { printNavSummaryLink(classdoc, visibleMemberMap.getMembersFor(classdoc).size() > 0? true: false); } protected void printNavSummaryLink(ClassDoc cd, boolean link) { if (link) { writer.printHyperLink("", "constructor_summary", writer.getText("doclet.navConstructor")); } else { writer.printText("doclet.navConstructor"); } } protected void printNavDetailLink(boolean link) { if (link) { writer.printHyperLink("", "constructor_detail", writer.getText("doclet.navConstructor")); } else { writer.printText("doclet.navConstructor"); } } protected void checkForNonPublicMembers(List members) { for (int i = 0; i < members.size(); i++) { if (!foundNonPublicMember) { if (!((ProgramElementDoc)(members.get(i))).isPublic()) { foundNonPublicMember = true; break; } } } } }