# HG changeset patch # User tbell # Date 1236035489 28800 # Node ID 120470d1e00d9398ae252038eacb6db164650255 # Parent 5da0e6b9f4f18ef483c977337214b12ee0e1fc8f# Parent b124d5c924eb06f3de66fdee2720ee8d43fdd43e Merge diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,11 +25,11 @@ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.internal.toolkit.util.*; +import java.io.*; +import java.util.*; import com.sun.javadoc.*; -import java.io.*; -import java.util.*; +import com.sun.tools.doclets.internal.toolkit.util.*; /** * Generate Index for all the Member Names with Indexing in @@ -100,18 +100,22 @@ h2(); strong(unicode.toString()); h2End(); - dl(); - for (int i = 0; i < memberlist.size(); i++) { - Doc element = memberlist.get(i); - if (element instanceof MemberDoc) { - printDescription((MemberDoc)element); - } else if (element instanceof ClassDoc) { - printDescription((ClassDoc)element); - } else if (element instanceof PackageDoc) { - printDescription((PackageDoc)element); + int memberListSize = memberlist.size(); + // Display the list only if there are elements to be displayed. + if (memberListSize > 0) { + dl(); + for (int i = 0; i < memberListSize; i++) { + Doc element = memberlist.get(i); + if (element instanceof MemberDoc) { + printDescription((MemberDoc)element); + } else if (element instanceof ClassDoc) { + printDescription((ClassDoc)element); + } else if (element instanceof PackageDoc) { + printDescription((PackageDoc)element); + } } + dlEnd(); } - dlEnd(); hr(); } @@ -126,8 +130,10 @@ printPackageLink(pkg, Util.getPackageName(pkg), true); print(" - "); print(configuration.getText("doclet.package") + " " + pkg.name()); + dtEnd(); dd(); printSummaryComment(pkg); + ddEnd(); } /** @@ -140,8 +146,10 @@ printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_INDEX, cd, true)); print(" - "); printClassInfo(cd); + dtEnd(); dd(); printComment(cd); + ddEnd(); } /** @@ -178,8 +186,10 @@ println(" - "); printMemberDesc(member); println(); + dtEnd(); dd(); printComment(member); + ddEnd(); println(); } diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,19 +25,20 @@ package com.sun.tools.doclets.formats.html; +import java.lang.reflect.Modifier; +import java.util.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.util.*; import com.sun.tools.doclets.internal.toolkit.taglets.*; -import com.sun.javadoc.*; -import java.util.*; -import java.lang.reflect.Modifier; - /** * The base class for member writers. * * @author Robert Field * @author Atul M Dambalkar * @author Jamie Ho (Re-write) + * @author Bhavesh Patel (Modified) */ public abstract class AbstractMemberWriter { @@ -232,10 +233,26 @@ } } + /** + * Print the deprecated output for the given member. + * + * @param member the member being documented. + */ + protected void printDeprecated(ProgramElementDoc member) { + String output = (new DeprecatedTaglet()).getTagletOutput(member, + writer.getTagletWriterInstance(false)).toString().trim(); + if (!output.isEmpty()) { + writer.printMemberDetailsListStartTag(); + writer.print(output); + } + } + protected void printComment(ProgramElementDoc member) { if (member.inlineTags().length > 0) { + writer.printMemberDetailsListStartTag(); writer.dd(); writer.printInlineComment(member); + writer.ddEnd(); } } @@ -267,6 +284,14 @@ } /** + * Write the member footer. + */ + protected void printMemberFooter() { + writer.printMemberDetailsListEndTag(); + assert !writer.getMemberDetailsListPrinted(); + } + + /** * Forward to containing writer */ public void printSummaryHeader(ClassDoc cd) { diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,10 +25,10 @@ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.internal.toolkit.*; +import java.io.*; + import com.sun.javadoc.*; - -import java.io.*; +import com.sun.tools.doclets.internal.toolkit.*; /** * Writes annotation type optional member documentation in HTML format. @@ -63,14 +63,20 @@ * {@inheritDoc} */ public void writeDefaultValueInfo(MemberDoc member) { - writer.dl(); - writer.dt(); - writer.strong(ConfigurationImpl.getInstance(). - getText("doclet.Default")); - writer.dd(); - writer.print(((AnnotationTypeElementDoc) member).defaultValue()); - writer.ddEnd(); - writer.dlEnd(); + if (((AnnotationTypeElementDoc) member).defaultValue() != null) { + writer.printMemberDetailsListStartTag(); + writer.dd(); + writer.dl(); + writer.dt(); + writer.strong(ConfigurationImpl.getInstance(). + getText("doclet.Default")); + writer.dtEnd(); + writer.dd(); + writer.print(((AnnotationTypeElementDoc) member).defaultValue()); + writer.ddEnd(); + writer.dlEnd(); + writer.ddEnd(); + } } /** diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,11 +25,10 @@ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.internal.toolkit.*; -import com.sun.tools.doclets.internal.toolkit.taglets.*; +import java.io.*; + import com.sun.javadoc.*; - -import java.io.*; +import com.sun.tools.doclets.internal.toolkit.*; /** * Writes annotation type required member documentation in HTML format. @@ -134,17 +133,14 @@ strong(member.name()); } writer.preEnd(); - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } /** * {@inheritDoc} */ public void writeComments(MemberDoc member) { - if (member.inlineTags().length > 0) { - writer.dd(); - writer.printInlineComment(member); - } + printComment(member); } /** @@ -160,7 +156,7 @@ * Write the annotation type member footer. */ public void writeMemberFooter() { - writer.dlEnd(); + printMemberFooter(); } /** @@ -267,9 +263,7 @@ * {@inheritDoc} */ public void writeDeprecated(MemberDoc member) { - print(((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(member, - writer.getTagletWriterInstance(false))).toString()); + printDeprecated(member); } private Type getType(MemberDoc member) { diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,10 +25,10 @@ package com.sun.tools.doclets.formats.html; +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.util.*; import com.sun.tools.doclets.internal.toolkit.builders.*; -import com.sun.javadoc.*; /** * Generate the Class Information Page. @@ -165,8 +165,6 @@ * {@inheritDoc} */ public void writeAnnotationTypeSignature(String modifiers) { - dl(); - dt(); preNoNewLine(); writeAnnotationInfo(annotationType); print(modifiers); @@ -178,7 +176,6 @@ } else { strong(name); } - dlEnd(); preEnd(); p(); } @@ -334,6 +331,7 @@ } else { strongText("doclet.Enclosing_Class"); } + dtEnd(); dd(); printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass, false)); diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,12 +25,12 @@ package com.sun.tools.doclets.formats.html; +import java.util.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.util.*; import com.sun.tools.doclets.internal.toolkit.builders.*; -import com.sun.javadoc.*; - -import java.util.*; import com.sun.tools.doclets.internal.toolkit.taglets.*; /** @@ -171,8 +171,6 @@ */ public void writeClassSignature(String modifiers) { boolean isInterface = classDoc.isInterface(); - dl(); - dt(); preNoNewLine(); writeAnnotationInfo(classDoc); print(modifiers); @@ -191,7 +189,7 @@ Type superclass = Util.getFirstVisibleSuperClass(classDoc, configuration()); if (superclass != null) { - dt(); + println(); print("extends "); printLink(new LinkInfoImpl( LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME, @@ -208,7 +206,7 @@ continue; } if (counter == 0) { - dt(); + println(); print(isInterface? "extends " : "implements "); } else { print(", "); @@ -219,7 +217,6 @@ counter++; } } - dlEnd(); preEnd(); p(); } @@ -342,6 +339,7 @@ TagletOutput output = (new ParamTaglet()).getTagletOutput(classDoc, getTagletWriterInstance(false)); print(output.toString()); + dtEnd(); dlEnd(); } } @@ -360,8 +358,10 @@ dl(); dt(); strongText("doclet.Subclasses"); + dtEnd(); writeClassLinks(LinkInfoImpl.CONTEXT_SUBCLASSES, subclasses); + dlEnd(); } } } @@ -376,8 +376,10 @@ dl(); dt(); strongText("doclet.Subinterfaces"); + dtEnd(); writeClassLinks(LinkInfoImpl.CONTEXT_SUBINTERFACES, subInterfaces); + dlEnd(); } } } @@ -398,8 +400,10 @@ dl(); dt(); strongText("doclet.Implementing_Classes"); + dtEnd(); writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_CLASSES, implcl); + dlEnd(); } } @@ -414,8 +418,10 @@ dl(); dt(); strongText("doclet.All_Implemented_Interfaces"); + dtEnd(); writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_INTERFACES, interfaceArray); + dlEnd(); } } @@ -430,8 +436,10 @@ dl(); dt(); strongText("doclet.All_Superinterfaces"); + dtEnd(); writeClassLinks(LinkInfoImpl.CONTEXT_SUPER_INTERFACES, interfaceArray); + dlEnd(); } } @@ -455,7 +463,6 @@ } } ddEnd(); - dlEnd(); } protected void navLinkTree() { @@ -574,6 +581,7 @@ } else { strongText("doclet.Enclosing_Class"); } + dtEnd(); dd(); printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass, false)); diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,12 +25,12 @@ package com.sun.tools.doclets.formats.html; +import java.io.*; +import java.util.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.tools.doclets.internal.toolkit.taglets.*; -import com.sun.javadoc.*; -import java.util.*; -import java.io.*; /** * Writes constructor documentation. @@ -149,7 +149,7 @@ writeParameters(constructor); writeExceptions(constructor); writer.preEnd(); - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } /** @@ -158,12 +158,7 @@ * @param constructor the constructor being documented. */ public void writeDeprecated(ConstructorDoc constructor) { - String output = ((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(constructor, - writer.getTagletWriterInstance(false))).toString(); - if (output != null && output.trim().length() > 0) { - writer.print(output); - } + printDeprecated(constructor); } /** @@ -172,10 +167,7 @@ * @param constructor the constructor being documented. */ public void writeComments(ConstructorDoc constructor) { - if (constructor.inlineTags().length > 0) { - writer.dd(); - writer.printInlineComment(constructor); - } + printComment(constructor); } /** @@ -191,7 +183,7 @@ * Write the constructor footer. */ public void writeConstructorFooter() { - writer.dlEnd(); + printMemberFooter(); } /** diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,12 +25,11 @@ package com.sun.tools.doclets.formats.html; +import java.io.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; -import com.sun.tools.doclets.internal.toolkit.taglets.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.javadoc.*; - -import java.io.*; /** * Writes enum constant documentation in HTML format. @@ -146,26 +145,21 @@ strong(enumConstant.name()); } writer.preEnd(); - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } /** * {@inheritDoc} */ public void writeDeprecated(FieldDoc enumConstant) { - print(((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(enumConstant, - writer.getTagletWriterInstance(false))).toString()); + printDeprecated(enumConstant); } /** * {@inheritDoc} */ public void writeComments(FieldDoc enumConstant) { - if (enumConstant.inlineTags().length > 0) { - writer.dd(); - writer.printInlineComment(enumConstant); - } + printComment(enumConstant); } /** @@ -179,7 +173,7 @@ * {@inheritDoc} */ public void writeEnumConstantFooter() { - writer.dlEnd(); + printMemberFooter(); } /** diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,12 +25,11 @@ package com.sun.tools.doclets.formats.html; +import java.io.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; -import com.sun.tools.doclets.internal.toolkit.taglets.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.javadoc.*; - -import java.io.*; /** * Writes field documentation in HTML format. @@ -156,7 +155,7 @@ strong(field.name()); } writer.preEnd(); - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } /** @@ -165,9 +164,7 @@ * @param field the field being documented. */ public void writeDeprecated(FieldDoc field) { - print(((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(field, - writer.getTagletWriterInstance(false))).toString()); + printDeprecated(field); } /** @@ -178,10 +175,12 @@ public void writeComments(FieldDoc field) { ClassDoc holder = field.containingClass(); if (field.inlineTags().length > 0) { + writer.printMemberDetailsListStartTag(); if (holder.equals(classdoc) || (! (holder.isPublic() || Util.isLinkable(holder, configuration())))) { writer.dd(); writer.printInlineComment(field); + writer.ddEnd(); } else { String classlink = writer.codeText( writer.getDocLink(LinkInfoImpl.CONTEXT_FIELD_DOC_COPY, @@ -196,6 +195,7 @@ writer.ddEnd(); writer.dd(); writer.printInlineComment(field); + writer.ddEnd(); } } } @@ -213,7 +213,7 @@ * Write the field footer. */ public void writeFieldFooter() { - writer.dlEnd(); + printMemberFooter(); } /** diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -24,17 +24,16 @@ */ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.formats.html.markup.*; -import com.sun.tools.doclets.internal.toolkit.*; -import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.tools.doclets.internal.toolkit.taglets.*; - -import com.sun.javadoc.*; import java.io.*; import java.text.SimpleDateFormat; import java.util.*; +import com.sun.javadoc.*; +import com.sun.tools.doclets.formats.html.markup.*; +import com.sun.tools.doclets.internal.toolkit.*; +import com.sun.tools.doclets.internal.toolkit.util.*; +import com.sun.tools.doclets.internal.toolkit.taglets.*; /** * Class for the Html Format Code Generation specific to JavaDoc. @@ -44,6 +43,7 @@ * @since 1.2 * @author Atul M Dambalkar * @author Robert Field + * @author Bhavesh Patel (Modified) */ public class HtmlDocletWriter extends HtmlDocWriter { @@ -205,7 +205,13 @@ private void printMethodInfo(MethodDoc method) { ClassDoc[] intfacs = method.containingClass().interfaces(); MethodDoc overriddenMethod = method.overriddenMethod(); - if (intfacs.length > 0 || overriddenMethod != null) { + // Check whether there is any implementation or overridden info to be + // printed. If no overridden or implementation info needs to be + // printed, do not print this section. + if ((intfacs.length > 0 && + new ImplementedMethods(method, this.configuration).build().length > 0) || + overriddenMethod != null) { + printMemberDetailsListStartTag(); dd(); printTagsInfoHeader(); MethodWriterImpl.printImplementsInfo(this, method); @@ -216,7 +222,6 @@ printTagsInfoFooter(); ddEnd(); } - dd(); } protected void printTags(Doc doc) { @@ -230,41 +235,35 @@ TagletWriter.genTagOuput(configuration.tagletManager, doc, configuration.tagletManager.getCustomTags(doc), getTagletWriterInstance(false), output); - if (output.toString().trim().length() > 0) { + String outputString = output.toString().trim(); + // For RootDoc and ClassDoc, this section is not the definition description + // but the start of definition list. + if (!outputString.isEmpty()) { + if (!(doc instanceof RootDoc || doc instanceof ClassDoc)) { + printMemberDetailsListStartTag(); + dd(); + } printTagsInfoHeader(); - print(output.toString()); + print(outputString); printTagsInfoFooter(); - } else if (! (doc instanceof ConstructorDoc || - doc instanceof RootDoc || doc instanceof ClassDoc)) { - //To be consistent with 1.4.2 output. - //I hate to do this but we have to pass the diff test to prove - //nothing has broken. - printTagsInfoHeader(); - printTagsInfoFooter(); + if (!(doc instanceof RootDoc || doc instanceof ClassDoc)) + ddEnd(); } } /** - * Check whether there are any tags to be printed. + * Check whether there are any tags for Serialization Overview + * section to be printed. * - * @param doc the Doc object to check for tags. + * @param field the FieldDoc object to check for tags. * @return true if there are tags to be printed else return false. */ - protected boolean hasTagsToPrint(Doc doc) { - if (doc instanceof MethodDoc) { - ClassDoc[] intfacs = ((MethodDoc)doc).containingClass().interfaces(); - MethodDoc overriddenMethod = ((MethodDoc)doc).overriddenMethod(); - if ((intfacs.length > 0 && - new ImplementedMethods((MethodDoc)doc, this.configuration).build().length > 0) || - overriddenMethod != null) { - return true; - } - } + protected boolean hasSerializationOverviewTags(FieldDoc field) { TagletOutputImpl output = new TagletOutputImpl(""); - TagletWriter.genTagOuput(configuration.tagletManager, doc, - configuration.tagletManager.getCustomTags(doc), + TagletWriter.genTagOuput(configuration.tagletManager, field, + configuration.tagletManager.getCustomTags(field), getTagletWriterInstance(false), output); - return (output.toString().trim().isEmpty()); + return (!output.toString().trim().isEmpty()); } /** diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,11 +25,12 @@ package com.sun.tools.doclets.formats.html; +import java.util.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.taglets.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.javadoc.*; -import java.util.*; /** * Generate serialized form for serializable fields. @@ -37,6 +38,7 @@ * serialField is processed. * * @author Joe Fialli + * @author Bhavesh Patel (Modified) */ public class HtmlSerialFieldWriter extends FieldWriterImpl implements SerializedFormWriter.SerialFieldWriter { @@ -75,7 +77,7 @@ writer.println(); if (heading.equals( configuration().getText("doclet.Serialized_Form_class"))) { - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } } else { writer.printTableHeadingBackground(heading); @@ -102,7 +104,7 @@ print(fieldDimensions + ' '); strong(fieldName); writer.preEnd(); - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } /** @@ -111,9 +113,7 @@ * @param field the field to document. */ public void writeMemberDeprecatedInfo(FieldDoc field) { - print(((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(field, - writer.getTagletWriterInstance(false))).toString()); + printDeprecated(field); } /** @@ -123,14 +123,17 @@ */ public void writeMemberDescription(FieldDoc field) { if (field.inlineTags().length > 0) { + writer.printMemberDetailsListStartTag(); writer.dd(); writer.printInlineComment(field); + writer.ddEnd(); } Tag[] tags = field.tags("serial"); if (tags.length > 0) { - writer.dt(); + writer.printMemberDetailsListStartTag(); writer.dd(); writer.printInlineComment(field, tags[0]); + writer.ddEnd(); } } @@ -140,9 +143,14 @@ * @param serialFieldTag the field to document (represented by tag). */ public void writeMemberDescription(SerialFieldTag serialFieldTag) { - writer.dd(); - writer.print(serialFieldTag.description()); - writer.dlEnd(); + String serialFieldTagDesc = serialFieldTag.description().trim(); + if (!serialFieldTagDesc.isEmpty()) { + writer.dl(); + writer.dd(); + writer.print(serialFieldTagDesc); + writer.ddEnd(); + writer.dlEnd(); + } } /** @@ -151,33 +159,57 @@ * @param field the field to document. */ public void writeMemberTags(FieldDoc field) { - writer.dl(); TagletOutputImpl output = new TagletOutputImpl(""); TagletWriter.genTagOuput(configuration().tagletManager, field, configuration().tagletManager.getCustomTags(field), writer.getTagletWriterInstance(false), output); - if (output.toString().length() > 0) { - print(output.toString()); + String outputString = output.toString().trim(); + if (!outputString.isEmpty()) { + writer.printMemberDetailsListStartTag(); + writer.dd(); + writer.dl(); + print(outputString); + writer.dlEnd(); + writer.ddEnd(); } - writer.dlEnd(); - } - public void writeMemberFooter(FieldDoc member) { - writer.dlEnd(); } /** - * Check to see if member details should be printed. If + * Check to see if overview details should be printed. If * nocomment option set or if there is no text to be printed - * for deprecation info, inline comment, no serial tag or inline tags, - * do not print member details. + * for deprecation info, comment or tags, do not print overview details. + * + * @param field the field to check overview details for. + * @return true if overview details need to be printed */ - public boolean shouldPrintMemberDetails(FieldDoc field) { - if (!configuration().nocomment) - if((field.inlineTags().length > 0) || - (field.tags("serial").length > 0) || (writer.hasTagsToPrint(field))) + public boolean shouldPrintOverview(FieldDoc field) { + if (!configuration().nocomment) { + if(!field.commentText().isEmpty() || + writer.hasSerializationOverviewTags(field)) return true; - if (!Util.isDeprecated(field)) + } + if (field.tags("deprecated").length > 0) return true; return false; } + + public void writeMemberFooter() { + printMemberFooter(); + } + + /** + * Write the footer information. If the serilization overview section was + * printed, check for definition list and close list tag. + * + * @param heading the heading that was written. + */ + public void writeFooter(String heading) { + if (printedOverallAnchor) { + if (heading.equals( + configuration().getText("doclet.Serialized_Form_class"))) { + writer.printMemberDetailsListEndTag(); + assert !writer.getMemberDetailsListPrinted(); + } + } + } } diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,9 +25,9 @@ package com.sun.tools.doclets.formats.html; +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.taglets.*; -import com.sun.javadoc.*; /** * Generate serialized form for Serializable/Externalizable methods. @@ -66,14 +66,12 @@ writeSignature(member); } - public void writeMemberFooter(MethodDoc member) { - writer.dlEnd(); + public void writeMemberFooter() { + printMemberFooter(); } public void writeDeprecatedMemberInfo(MethodDoc member) { - print(((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(member, - writer.getTagletWriterInstance(false))).toString()); + printDeprecated(member); } public void writeMemberDescription(MethodDoc member) { @@ -81,23 +79,27 @@ } public void writeMemberTags(MethodDoc member) { - writer.dd(); - writer.dl(); TagletOutputImpl output = new TagletOutputImpl(""); TagletManager tagletManager = ConfigurationImpl.getInstance().tagletManager; TagletWriter.genTagOuput(tagletManager, member, tagletManager.getSerializedFormTags(), writer.getTagletWriterInstance(false), output); - print(output.toString()); + String outputString = output.toString().trim(); + if (!outputString.isEmpty()) { + writer.printMemberDetailsListStartTag(); + writer.dd(); + writer.dl(); + print(outputString); + writer.dlEnd(); + writer.ddEnd(); + } MethodDoc method = member; if (method.name().compareTo("writeExternal") == 0 && method.tags("serialData").length == 0) { serialWarning(member.position(), "doclet.MissingSerialDataTag", method.containingClass().qualifiedName(), method.name()); } - writer.ddEnd(); - writer.dlEnd(); } protected void printTypeLinkNoDimension(Type type) { diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,13 +25,13 @@ package com.sun.tools.doclets.formats.html; +import java.io.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.util.*; import com.sun.tools.doclets.internal.toolkit.taglets.*; -import java.io.*; -import com.sun.javadoc.*; - /** * Writes method documentation in HTML format. * @@ -172,7 +172,7 @@ writeParameters(method); writeExceptions(method); writer.preEnd(); - writer.dl(); + assert !writer.getMemberDetailsListPrinted(); } /** @@ -181,12 +181,7 @@ * @param method the method being documented. */ public void writeDeprecated(MethodDoc method) { - String output = ((TagletOutputImpl) - (new DeprecatedTaglet()).getTagletOutput(method, - writer.getTagletWriterInstance(false))).toString(); - if (output != null && output.trim().length() > 0) { - writer.print(output); - } + printDeprecated(method); } /** @@ -197,11 +192,13 @@ public void writeComments(Type holder, MethodDoc method) { ClassDoc holderClassDoc = holder.asClassDoc(); if (method.inlineTags().length > 0) { + writer.printMemberDetailsListStartTag(); if (holder.asClassDoc().equals(classdoc) || (! (holderClassDoc.isPublic() || Util.isLinkable(holderClassDoc, configuration())))) { writer.dd(); writer.printInlineComment(method); + writer.ddEnd(); } else { String classlink = writer.codeText( writer.getDocLink(LinkInfoImpl.CONTEXT_METHOD_DOC_COPY, @@ -217,6 +214,7 @@ writer.ddEnd(); writer.dd(); writer.printInlineComment(method); + writer.ddEnd(); } } } @@ -234,8 +232,7 @@ * Write the method footer. */ public void writeMethodFooter() { - writer.ddEnd(); - writer.dlEnd(); + printMemberFooter(); } /** @@ -318,6 +315,7 @@ String name = method.name(); writer.dt(); writer.strongText(label); + writer.dtEnd(); writer.dd(); String methLink = writer.codeText( writer.getLink( @@ -326,6 +324,7 @@ writer.getAnchor(method), name, false) )); writer.printText("doclet.in_class", methLink, overriddenTypeLink); + writer.ddEnd(); } } @@ -364,11 +363,13 @@ LinkInfoImpl.CONTEXT_METHOD_SPECIFIED_BY, intfac))); writer.dt(); writer.strongText("doclet.Specified_By"); + writer.dtEnd(); writer.dd(); methlink = writer.codeText(writer.getDocLink( LinkInfoImpl.CONTEXT_MEMBER, implementedMeth, implementedMeth.name(), false)); writer.printText("doclet.in_interface", methlink, intfaclink); + writer.ddEnd(); } } diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,11 +25,11 @@ package com.sun.tools.doclets.formats.html; +import java.io.*; + +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.javadoc.*; - -import java.io.*; /** * Writes nested class documentation in HTML format. @@ -129,7 +129,6 @@ writer.println(""); } writer.anchor(nestedClass.name()); - writer.dl(); writer.h3(); writer.print(nestedClass.name()); writer.h3End(); diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,9 +25,10 @@ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.internal.toolkit.util.*; +import java.io.*; + import com.sun.javadoc.*; -import java.io.*; +import com.sun.tools.doclets.internal.toolkit.util.*; /** * Class to generate Tree page for a package. The name of the file generated is @@ -145,8 +146,10 @@ dl(); dt(); strongText("doclet.Package_Hierarchies"); + dtEnd(); dd(); navLinkMainTree(configuration.getText("doclet.All_Packages")); + ddEnd(); dlEnd(); hr(); } diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,17 +25,18 @@ package com.sun.tools.doclets.formats.html; +import com.sun.javadoc.*; import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder; import com.sun.tools.doclets.internal.toolkit.taglets.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.javadoc.*; /** * The taglet writer that writes HTML. * * @since 1.5 * @author Jamie Ho + * @author Bhavesh Patel (Modified) */ public class TagletWriterImpl extends TagletWriter { @@ -99,11 +100,12 @@ output.append(DocletConstants.NL + "

" + DocletConstants.NL); } + output.append(""); } else { if (Util.isDeprecated(member.containingClass())) { output.append("

" + ConfigurationImpl.getInstance(). - getText("doclet.Deprecated") + " "); + getText("doclet.Deprecated") + " 
"); } } } @@ -123,7 +125,7 @@ public TagletOutput getParamHeader(String header) { StringBuffer result = new StringBuffer(); result.append("
"); - result.append("" + header + ""); + result.append("" + header + "
"); return new TagletOutputImpl(result.toString()); } @@ -132,7 +134,7 @@ */ public TagletOutput paramTagOutput(ParamTag paramTag, String paramName) { TagletOutput result = new TagletOutputImpl("
" + paramName + "" - + " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false)); + + " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false) + "
"); return result; } @@ -142,9 +144,9 @@ public TagletOutput returnTagOutput(Tag returnTag) { TagletOutput result = new TagletOutputImpl(DocletConstants.NL + "
" + "" + htmlWriter.configuration.getText("doclet.Returns") + - "" + "
" + + "" + "" + "
" + htmlWriter.commentTagsToString(returnTag, null, returnTag.inlineTags(), - false)); + false) + "
"); return result; } @@ -174,22 +176,21 @@ } if (holder.isClass() && ((ClassDoc)holder).isSerializable()) { //Automatically add link to serialized form page for serializable classes. - if (!(SerializedFormBuilder.serialInclude(holder) && + if ((SerializedFormBuilder.serialInclude(holder) && SerializedFormBuilder.serialInclude(((ClassDoc)holder).containingPackage()))) { - return result.equals("") ? null : new TagletOutputImpl(result); + result = addSeeHeader(result); + result += htmlWriter.getHyperLink(htmlWriter.relativePath + "serialized-form.html", + ((ClassDoc)holder).qualifiedName(), htmlWriter.configuration.getText("doclet.Serialized_Form"), false); } - result = addSeeHeader(result); - result += htmlWriter.getHyperLink(htmlWriter.relativePath + "serialized-form.html", - ((ClassDoc)holder).qualifiedName(), htmlWriter.configuration.getText("doclet.Serialized_Form"), false); } - return result.equals("") ? null : new TagletOutputImpl(result); + return result.equals("") ? null : new TagletOutputImpl(result + ""); } private String addSeeHeader(String result) { if (result != null && result.length() > 0) { return result + ", " + DocletConstants.NL; } else { - return "
" + htmlWriter.configuration().getText("doclet.See_Also") + "
"; + return "
" + htmlWriter.configuration().getText("doclet.See_Also") + "
"; } } @@ -205,7 +206,8 @@ } result += htmlWriter.commentTagsToString(simpleTags[i], null, simpleTags[i].inlineTags(), false); } - return new TagletOutputImpl(result + "
" + DocletConstants.NL); + result += "" + DocletConstants.NL; + return new TagletOutputImpl(result); } /** @@ -222,7 +224,7 @@ */ public TagletOutput getThrowsHeader() { return new TagletOutputImpl(DocletConstants.NL + "
" + "" + - htmlWriter.configuration().getText("doclet.Throws") + ""); + htmlWriter.configuration().getText("doclet.Throws") + "
"); } /** @@ -241,6 +243,7 @@ if (text != null && text.toString().length() > 0) { result += " - " + text; } + result += ""; return new TagletOutputImpl(result); } @@ -250,7 +253,7 @@ public TagletOutput throwsTagOutput(Type throwsType) { return new TagletOutputImpl(DocletConstants.NL + "
" + htmlWriter.codeText(htmlWriter.getLink( - new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType)))); + new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))) + "
"); } /** diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,9 +25,11 @@ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.internal.toolkit.util.*; +import java.io.*; + import com.sun.javadoc.*; -import java.io.*; +import com.sun.tools.doclets.internal.toolkit.util.*; + /** * Generate Class Hierarchy page for all the Classes in this run. Use * ClassTree for building the Tree. The name of @@ -120,6 +122,7 @@ dl(); dt(); strongText("doclet.Package_Hierarchies"); + dtEnd(); dd(); for (int i = 0; i < packages.length; i++) { if (packages[i].name().length() == 0) { @@ -131,6 +134,7 @@ print(", "); } } + ddEnd(); dlEnd(); hr(); } diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -245,6 +245,31 @@ } /** + * Keep track of member details list. Print the definition list start tag + * if it is not printed yet. + */ + public void printMemberDetailsListStartTag () { + if (!getMemberDetailsListPrinted()) { + dl(); + memberDetailsListPrinted = true; + } + } + + /** + * Print the definition list end tag if the list start tag was printed. + */ + public void printMemberDetailsListEndTag () { + if (getMemberDetailsListPrinted()) { + dlEnd(); + memberDetailsListPrinted = false; + } + } + + public boolean getMemberDetailsListPrinted() { + return memberDetailsListPrinted; + } + + /** * Print the frameset version of the Html file header. * Called only when generating an HTML frameset file. * diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,9 +25,10 @@ package com.sun.tools.doclets.formats.html.markup; +import java.io.*; + import com.sun.tools.doclets.internal.toolkit.*; import com.sun.tools.doclets.internal.toolkit.util.*; -import java.io.*; /** * Class for the Html format code generation. @@ -61,6 +62,11 @@ protected Configuration configuration; /** + * The flag to indicate whether a member details list is printed or not. + */ + protected boolean memberDetailsListPrinted; + + /** * Constructor. * * @param path The directory path to be created for this file @@ -79,6 +85,7 @@ super(Util.genWriter(configuration, path, filename, docencoding)); this.configuration = configuration; htmlFilename = filename; + this.memberDetailsListPrinted = false; } /** @@ -529,7 +536,14 @@ } /** - * Print <DT> tag. + * Print </DT> tag. + */ + public void dtEnd() { + print(""); + } + + /** + * Print <DD> tag. */ public void dd() { print("
"); diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,8 +25,9 @@ package com.sun.tools.doclets.internal.toolkit; +import java.io.*; + import com.sun.javadoc.*; -import java.io.*; /** * The interface for writing serialized form output. @@ -147,22 +148,27 @@ String fieldDimensions, String fieldName); /** - * Write the footer. - * - * @param member the member to write the header for. + * Write the member footer. */ - public void writeMemberFooter(FieldDoc member); + public void writeMemberFooter(); /** - * Check to see if member details should be printed. If + * Check to see if overview details should be printed. If * nocomment option set or if there is no text to be printed - * for deprecation info, inline comment, no serial tag or inline tags, - * do not print member details. + * for deprecation info, inline comment or tags, + * do not print overview details. * - * @param member the member to check details for. - * @return true if details need to be printed + * @param field the field to check overview details for. + * @return true if overview details need to be printed */ - public boolean shouldPrintMemberDetails(FieldDoc member); + public boolean shouldPrintOverview(FieldDoc field); + + /** + * Write the footer. + * + * @param heading the heading that was written. + */ + public void writeFooter (String heading); } /** @@ -193,10 +199,8 @@ /** * Write the footer. - * - * @param member the member to write the header for. */ - public void writeMemberFooter(MethodDoc member); + public void writeMemberFooter(); /** * Write the deprecated information for this member. diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java Mon Mar 02 15:11:29 2009 -0800 @@ -25,13 +25,14 @@ package com.sun.tools.doclets.internal.toolkit.builders; -import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.tools.doclets.internal.toolkit.*; -import com.sun.javadoc.*; import java.io.*; import java.lang.reflect.*; import java.util.*; +import com.sun.javadoc.*; +import com.sun.tools.doclets.internal.toolkit.util.*; +import com.sun.tools.doclets.internal.toolkit.*; + /** * Builds the serialized form. * @@ -40,6 +41,7 @@ * Do not use it as an API * * @author Jamie Ho + * @author Bhavesh Patel (Modified) * @since 1.5 */ public class SerializedFormBuilder extends AbstractBuilder { @@ -379,7 +381,7 @@ * Build the method footer. */ public void buildMethodFooter() { - methodWriter.writeMemberFooter((MethodDoc) currentMember); + methodWriter.writeMemberFooter(); } /** @@ -405,15 +407,18 @@ Util.asList(classDoc.serializableFields()).get(0); // Check to see if there are inline comments, tags or deprecation // information to be printed. - if (fieldWriter.shouldPrintMemberDetails(serialPersistentField)) { + if (fieldWriter.shouldPrintOverview(serialPersistentField)) { fieldWriter.writeHeader( - configuration.getText("doclet.Serialized_Form_class")); + configuration.getText("doclet.Serialized_Form_class")); fieldWriter.writeMemberDeprecatedInfo(serialPersistentField); if (!configuration.nocomment) { fieldWriter.writeMemberDescription(serialPersistentField); fieldWriter.writeMemberTags(serialPersistentField); } - fieldWriter.writeMemberFooter(serialPersistentField); + // Footer required to close the definition list tag + // for serialization overview. + fieldWriter.writeFooter( + configuration.getText("doclet.Serialized_Form_class")); } } } @@ -476,11 +481,11 @@ } /** - * Build the field footer. + * Build the field sub footer. */ - public void buildFieldFooter() { + public void buildFieldSubFooter() { if (! currentClass.definesSerializableFields()) { - fieldWriter.writeMemberFooter((FieldDoc) currentMember); + fieldWriter.writeMemberFooter(); } } diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml Mon Mar 02 15:11:29 2009 -0800 @@ -1,205 +1,205 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
" + NL + "" + NL + ""}, // Method inheritence from non-public superinterface. {BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html", "Methods inherited from interface " + @@ -209,12 +209,12 @@ //Make sure implemented interfaces from private superclass are inherited {BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html", - "All Known Implementing Classes:
All Known Implementing Classes:
PrivateParent, " + "PublicChild"}, {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html", - "All Implemented Interfaces:
All Implemented Interfaces:
PrivateInterface, " + "" + "PublicInterface"}, @@ -226,7 +226,7 @@ "I"}, {BUG_ID + "-2" + FS + "pkg2" + FS + "C.html", - "Specified by:
" + + "Specified by:
" + "hello in interface I"}, }; diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java --- a/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java Mon Mar 02 15:11:29 2009 -0800 @@ -41,39 +41,39 @@ // Test for normal run of javadoc. The serialized-form.html should // display the inline comments, tags and deprecation information if any. private static final String[][] TEST_CMNT_DEPR = { - {BUG_ID + FS + "serialized-form.html", "
" + NL + "
" + NL + NL + - "
Throws:" + NL + "
" + - "java.io.IOException
See Also:" + - "
" + - "C1.setUndecorated(boolean)
" + NL + - "
" + NL + "
"}, + {BUG_ID + FS + "serialized-form.html", "
" + NL + "
" + NL + + "
Throws:
" + NL + "
" + + "java.io.IOException
See Also:" + + "
" + + "C1.setUndecorated(boolean)
" + NL + + "
" + NL + "
"}, {BUG_ID + FS + "serialized-form.html", "
" + NL + - "
Deprecated. As of JDK version" + - " 1.5, replaced by" + NL + + "
Deprecated. As of JDK version " + + "1.5, replaced by" + NL + " " + - "setUndecorated(boolean)." + + "setUndecorated(boolean).
" + "
This field indicates whether the C1 is undecorated." + NL + - "

" + NL + "

 
" + NL + - "
Since:
" + NL + + "

" + NL + "

" + NL + "
 
" + NL + + "
" + NL + "
Since:
" + NL + "
1.4
" + NL + "
See Also:" + - "
" + - "C1.setUndecorated(boolean)
" + NL + - "
"}, + "
" + + "C1.setUndecorated(boolean)
" + NL + + "" + NL + ""}, {BUG_ID + FS + "serialized-form.html", "
" + NL + "
Deprecated. As of JDK version" + " 1.5, replaced by" + NL + " " + "setUndecorated(boolean)." + NL + "

" + NL + - "

Reads the object stream." + NL + "

" + NL + - "

" + NL + NL + "
Throws:" + - "" + NL + "
" + - "IOException" + NL + - "
java.io.IOException
" + NL + - "
" + NL + "
"}, + "
Reads the object stream." + NL + "

" + NL + + "

" + NL + "
" + NL + "
Throws:" + + "
" + NL + "
" + + "IOException
" + NL + + "
java.io.IOException
" + NL + + "
" + NL + ""}, {BUG_ID + FS + "serialized-form.html", "
" + NL + - "
Deprecated. 
" + - "The name for this class." + NL + "

" + NL + - "

 
" + NL + "
" + NL + "
"}}; + "
Deprecated. 
" + + "The name for this class." + NL + "

" + NL + "

" + NL + + "
 
" + NL + ""}}; // Test with -nocomment option. The serialized-form.html should // not display the inline comments and tags but should display deprecation @@ -83,16 +83,16 @@ "undecorated" + NL + "
" + NL + "
" + "Deprecated. As of JDK version 1.5, replaced by" + NL + " " + - "setUndecorated(boolean).
"}, + "setUndecorated(boolean)
."}, {BUG_ID + FS + "serialized-form.html", "
" + NL + "
" + "Deprecated. As of JDK version" + " 1.5, replaced by" + NL + " " + "setUndecorated(boolean)." + NL + "

" + NL + - "

"}, + ""}, {BUG_ID + FS + "serialized-form.html", "
" + NL + "int " +
                  "publicKey
" + NL + "
" + NL + "
" + - "Deprecated. 
"}}; + "Deprecated. "}}; // Test with -nodeprecated option. The serialized-form.html should // ignore the -nodeprecated tag and display the deprecation info. This diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java --- a/langtools/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java Mon Mar 02 15:11:29 2009 -0800 @@ -46,14 +46,14 @@ //Input for string search tests. private static final String[][] TEST = { {BUG_ID + FS + "pkg" + FS + "C.html", - "
T1 - the first throws tag." + NL + - "
T2 - the second throws tag." + NL + - "
T3 - the third throws tag." + NL + - "
T4 - the fourth throws tag." + NL + - "
T5 - the first inherited throws tag." + NL + - "
T6 - the second inherited throws tag." + NL + - "
T7 - the third inherited throws tag." + NL + - "
T8 - the fourth inherited throws tag." + "
T1 - the first throws tag.
" + NL + + "
T2 - the second throws tag.
" + NL + + "
T3 - the third throws tag.
" + NL + + "
T4 - the fourth throws tag.
" + NL + + "
T5 - the first inherited throws tag.
" + NL + + "
T6 - the second inherited throws tag.
" + NL + + "
T7 - the third inherited throws tag.
" + NL + + "
T8 - the fourth inherited throws tag.
" }, }; private static final String[][] NEGATED_TEST = NO_TEST; diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/test/tools/javac/processing/environment/round/Foo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/processing/environment/round/Foo.java Mon Mar 02 15:11:29 2009 -0800 @@ -0,0 +1,27 @@ +/* + * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +@AnnotatedElementInfo(annotationName="AnnotatedElementInfo", + expectedSize=1, + names="Foo") +public class Foo {} diff -r 5da0e6b9f4f1 -r 120470d1e00d langtools/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java --- a/langtools/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java Wed Jul 05 16:48:21 2017 +0200 +++ b/langtools/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java Mon Mar 02 15:11:29 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 6397298 6400986 6425592 6449798 6453386 6508401 + * @bug 6397298 6400986 6425592 6449798 6453386 6508401 6498938 * @summary Tests that getElementsAnnotatedWith works properly. * @author Joseph D. Darcy * @compile TestElementsAnnotatedWith.java @@ -31,16 +31,22 @@ * @compile -processor TestElementsAnnotatedWith -proc:only SurfaceAnnotations.java * @compile -processor TestElementsAnnotatedWith -proc:only BuriedAnnotations.java * @compile -processor TestElementsAnnotatedWith -proc:only Part1.java Part2.java + * @compile -processor TestElementsAnnotatedWith -proc:only C2.java + * @compile -processor TestElementsAnnotatedWith -proc:only Foo.java + * @compile -XD-d=. Foo.java * @compile -processor TestElementsAnnotatedWith -proc:only TestElementsAnnotatedWith.java - * @compile -processor TestElementsAnnotatedWith -proc:only C2.java */ import java.lang.annotation.Annotation; +import java.io.*; import java.util.Collections; import java.util.Set; import java.util.HashSet; +import java.util.List; +import java.util.ArrayList; import java.util.Arrays; import javax.annotation.processing.*; +import javax.tools.*; import javax.lang.model.SourceVersion; import javax.lang.model.element.*; import javax.lang.model.util.*; @@ -120,6 +126,9 @@ System.err.println("AnnotatedElementInfo: " + annotatedElementInfo); throw new RuntimeException(); } + + if("TestElementsAnnotatedWith".equals(firstType.getSimpleName().toString())) + writeClassFile(); // Start another round to test class file input } else { // If processing is over without an error, the specified // elements should be empty so an empty set should be returned. @@ -161,6 +170,37 @@ } catch(IllegalArgumentException iae) {} } + /* + * Hack alert! The class file read below is generated by the + * "@compile -XD-d=. Foo.java" directive above. This sneakily + * overrides the output location to the current directory where a + * subsequent @compile can read the file. This could be improved + * if either a new directive like @process accepted class file + * arguments (the javac command accepts such arguments but + * @compile does not) or the test.src and test.classes properties + * were set to be read with @compile jobs. + */ + private void writeClassFile() { + try { + Filer filer = processingEnv.getFiler(); + JavaFileObject jfo = filer.createClassFile("Foo"); + OutputStream os = jfo.openOutputStream(); + // Copy the bytes over + System.out.println((new File(".")).getAbsolutePath()); + InputStream io = new BufferedInputStream(new FileInputStream(new File(".", "Foo.class"))); + int datum = io.read(); + while(datum != -1) { + os.write(datum); + datum = io.read(); + } + os.close(); + } catch (IOException io) { + throw new RuntimeException(io); + } + + + } + @Override public SourceVersion getSupportedSourceVersion() { return SourceVersion.latest();