提交 e8ce578c 编写于 作者: T tbell

Merge

......@@ -25,12 +25,12 @@
package com.sun.tools.doclets.formats.html;
import com.sun.tools.doclets.internal.toolkit.util.*;
import com.sun.javadoc.*;
import java.io.*;
import java.util.*;
import com.sun.javadoc.*;
import com.sun.tools.doclets.internal.toolkit.util.*;
/**
* Generate Index for all the Member Names with Indexing in
* Unicode Order. This class is a base class for {@link SingleIndexWriter} and
......@@ -100,18 +100,22 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
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 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
printPackageLink(pkg, Util.getPackageName(pkg), true);
print(" - ");
print(configuration.getText("doclet.package") + " " + pkg.name());
dtEnd();
dd();
printSummaryComment(pkg);
ddEnd();
}
/**
......@@ -140,8 +146,10 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_INDEX, cd, true));
print(" - ");
printClassInfo(cd);
dtEnd();
dd();
printComment(cd);
ddEnd();
}
/**
......@@ -178,8 +186,10 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
println(" - ");
printMemberDesc(member);
println();
dtEnd();
dd();
printComment(member);
ddEnd();
println();
}
......
......@@ -25,12 +25,12 @@
package com.sun.tools.doclets.formats.html;
import com.sun.tools.doclets.internal.toolkit.util.*;
import com.sun.tools.doclets.internal.toolkit.taglets.*;
import java.lang.reflect.Modifier;
import java.util.*;
import com.sun.javadoc.*;
import java.util.*;
import java.lang.reflect.Modifier;
import com.sun.tools.doclets.internal.toolkit.util.*;
import com.sun.tools.doclets.internal.toolkit.taglets.*;
/**
* The base class for member writers.
......@@ -38,6 +38,7 @@ import java.lang.reflect.Modifier;
* @author Robert Field
* @author Atul M Dambalkar
* @author Jamie Ho (Re-write)
* @author Bhavesh Patel (Modified)
*/
public abstract class AbstractMemberWriter {
......@@ -232,10 +233,26 @@ public abstract class AbstractMemberWriter {
}
}
/**
* 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();
}
}
......@@ -266,6 +283,14 @@ public abstract class AbstractMemberWriter {
writer.printTags(member);
}
/**
* Write the member footer.
*/
protected void printMemberFooter() {
writer.printMemberDetailsListEndTag();
assert !writer.getMemberDetailsListPrinted();
}
/**
* Forward to containing writer
*/
......
......@@ -25,11 +25,11 @@
package com.sun.tools.doclets.formats.html;
import com.sun.tools.doclets.internal.toolkit.*;
import com.sun.javadoc.*;
import java.io.*;
import com.sun.javadoc.*;
import com.sun.tools.doclets.internal.toolkit.*;
/**
* Writes annotation type optional member documentation in HTML format.
*
......@@ -63,14 +63,20 @@ public class AnnotationTypeOptionalMemberWriterImpl extends
* {@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();
}
}
/**
......
......@@ -25,12 +25,11 @@
package com.sun.tools.doclets.formats.html;
import com.sun.tools.doclets.internal.toolkit.*;
import com.sun.tools.doclets.internal.toolkit.taglets.*;
import com.sun.javadoc.*;
import java.io.*;
import com.sun.javadoc.*;
import com.sun.tools.doclets.internal.toolkit.*;
/**
* Writes annotation type required member documentation in HTML format.
*
......@@ -134,17 +133,14 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
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 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
* Write the annotation type member footer.
*/
public void writeMemberFooter() {
writer.dlEnd();
printMemberFooter();
}
/**
......@@ -267,9 +263,7 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
* {@inheritDoc}
*/
public void writeDeprecated(MemberDoc member) {
print(((TagletOutputImpl)
(new DeprecatedTaglet()).getTagletOutput(member,
writer.getTagletWriterInstance(false))).toString());
printDeprecated(member);
}
private Type getType(MemberDoc member) {
......
......@@ -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 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
* {@inheritDoc}
*/
public void writeAnnotationTypeSignature(String modifiers) {
dl();
dt();
preNoNewLine();
writeAnnotationInfo(annotationType);
print(modifiers);
......@@ -178,7 +176,6 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
} else {
strong(name);
}
dlEnd();
preEnd();
p();
}
......@@ -334,6 +331,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
} else {
strongText("doclet.Enclosing_Class");
}
dtEnd();
dd();
printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass,
false));
......
......@@ -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 class ClassWriterImpl extends SubWriterHolderWriter
*/
public void writeClassSignature(String modifiers) {
boolean isInterface = classDoc.isInterface();
dl();
dt();
preNoNewLine();
writeAnnotationInfo(classDoc);
print(modifiers);
......@@ -191,7 +189,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
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 @@ public class ClassWriterImpl extends SubWriterHolderWriter
continue;
}
if (counter == 0) {
dt();
println();
print(isInterface? "extends " : "implements ");
} else {
print(", ");
......@@ -219,7 +217,6 @@ public class ClassWriterImpl extends SubWriterHolderWriter
counter++;
}
}
dlEnd();
preEnd();
p();
}
......@@ -342,6 +339,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
TagletOutput output = (new ParamTaglet()).getTagletOutput(classDoc,
getTagletWriterInstance(false));
print(output.toString());
dtEnd();
dlEnd();
}
}
......@@ -360,8 +358,10 @@ public class ClassWriterImpl extends SubWriterHolderWriter
dl();
dt();
strongText("doclet.Subclasses");
dtEnd();
writeClassLinks(LinkInfoImpl.CONTEXT_SUBCLASSES,
subclasses);
dlEnd();
}
}
}
......@@ -376,8 +376,10 @@ public class ClassWriterImpl extends SubWriterHolderWriter
dl();
dt();
strongText("doclet.Subinterfaces");
dtEnd();
writeClassLinks(LinkInfoImpl.CONTEXT_SUBINTERFACES,
subInterfaces);
dlEnd();
}
}
}
......@@ -398,8 +400,10 @@ public class ClassWriterImpl extends SubWriterHolderWriter
dl();
dt();
strongText("doclet.Implementing_Classes");
dtEnd();
writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_CLASSES,
implcl);
dlEnd();
}
}
......@@ -414,8 +418,10 @@ public class ClassWriterImpl extends SubWriterHolderWriter
dl();
dt();
strongText("doclet.All_Implemented_Interfaces");
dtEnd();
writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_INTERFACES,
interfaceArray);
dlEnd();
}
}
......@@ -430,8 +436,10 @@ public class ClassWriterImpl extends SubWriterHolderWriter
dl();
dt();
strongText("doclet.All_Superinterfaces");
dtEnd();
writeClassLinks(LinkInfoImpl.CONTEXT_SUPER_INTERFACES,
interfaceArray);
dlEnd();
}
}
......@@ -455,7 +463,6 @@ public class ClassWriterImpl extends SubWriterHolderWriter
}
}
ddEnd();
dlEnd();
}
protected void navLinkTree() {
......@@ -574,6 +581,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter
} else {
strongText("doclet.Enclosing_Class");
}
dtEnd();
dd();
printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass,
false));
......
......@@ -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 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
writeParameters(constructor);
writeExceptions(constructor);
writer.preEnd();
writer.dl();
assert !writer.getMemberDetailsListPrinted();
}
/**
......@@ -158,12 +158,7 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
* @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 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
* @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 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
* Write the constructor footer.
*/
public void writeConstructorFooter() {
writer.dlEnd();
printMemberFooter();
}
/**
......
......@@ -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 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
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 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
* {@inheritDoc}
*/
public void writeEnumConstantFooter() {
writer.dlEnd();
printMemberFooter();
}
/**
......
......@@ -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 @@ public class FieldWriterImpl extends AbstractMemberWriter
strong(field.name());
}
writer.preEnd();
writer.dl();
assert !writer.getMemberDetailsListPrinted();
}
/**
......@@ -165,9 +164,7 @@ public class FieldWriterImpl extends AbstractMemberWriter
* @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 class FieldWriterImpl extends AbstractMemberWriter
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 @@ public class FieldWriterImpl extends AbstractMemberWriter
writer.ddEnd();
writer.dd();
writer.printInlineComment(field);
writer.ddEnd();
}
}
}
......@@ -213,7 +213,7 @@ public class FieldWriterImpl extends AbstractMemberWriter
* Write the field footer.
*/
public void writeFieldFooter() {
writer.dlEnd();
printMemberFooter();
}
/**
......
......@@ -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 @@ import java.util.*;
* @since 1.2
* @author Atul M Dambalkar
* @author Robert Field
* @author Bhavesh Patel (Modified)
*/
public class HtmlDocletWriter extends HtmlDocWriter {
......@@ -205,7 +205,13 @@ public class HtmlDocletWriter extends HtmlDocWriter {
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 @@ public class HtmlDocletWriter extends HtmlDocWriter {
printTagsInfoFooter();
ddEnd();
}
dd();
}
protected void printTags(Doc doc) {
......@@ -230,41 +235,35 @@ public class HtmlDocletWriter extends HtmlDocWriter {
TagletWriter.genTagOuput(configuration.tagletManager, doc,
configuration.tagletManager.getCustomTags(doc),
getTagletWriterInstance(false), output);
if (output.toString().trim().length() > 0) {
printTagsInfoHeader();
print(output.toString());
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.
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(outputString);
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());
}
/**
......
......@@ -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 @@ import java.util.*;
* <code>serialField</code> is processed.
*
* @author Joe Fialli
* @author Bhavesh Patel (Modified)
*/
public class HtmlSerialFieldWriter extends FieldWriterImpl
implements SerializedFormWriter.SerialFieldWriter {
......@@ -75,7 +77,7 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
writer.println();
if (heading.equals(
configuration().getText("doclet.Serialized_Form_class"))) {
writer.dl();
assert !writer.getMemberDetailsListPrinted();
}
} else {
writer.printTableHeadingBackground(heading);
......@@ -102,7 +104,7 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
print(fieldDimensions + ' ');
strong(fieldName);
writer.preEnd();
writer.dl();
assert !writer.getMemberDetailsListPrinted();
}
/**
......@@ -111,9 +113,7 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
* @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 class HtmlSerialFieldWriter extends FieldWriterImpl
*/
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 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
* @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 @@ public class HtmlSerialFieldWriter extends FieldWriterImpl
* @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();
}
}
}
}
......@@ -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 @@ public class HtmlSerialMethodWriter extends MethodWriterImpl implements
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 class HtmlSerialMethodWriter extends MethodWriterImpl implements
}
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) {
......
......@@ -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 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
writeParameters(method);
writeExceptions(method);
writer.preEnd();
writer.dl();
assert !writer.getMemberDetailsListPrinted();
}
/**
......@@ -181,12 +181,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
* @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 class MethodWriterImpl extends AbstractExecutableMemberWriter
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 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
writer.ddEnd();
writer.dd();
writer.printInlineComment(method);
writer.ddEnd();
}
}
}
......@@ -234,8 +232,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
* Write the method footer.
*/
public void writeMethodFooter() {
writer.ddEnd();
writer.dlEnd();
printMemberFooter();
}
/**
......@@ -318,6 +315,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
String name = method.name();
writer.dt();
writer.strongText(label);
writer.dtEnd();
writer.dd();
String methLink = writer.codeText(
writer.getLink(
......@@ -326,6 +324,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
writer.getAnchor(method), name, false)
));
writer.printText("doclet.in_class", methLink, overriddenTypeLink);
writer.ddEnd();
}
}
......@@ -364,11 +363,13 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
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();
}
}
......
......@@ -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 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
writer.println("");
}
writer.anchor(nestedClass.name());
writer.dl();
writer.h3();
writer.print(nestedClass.name());
writer.h3End();
......
......@@ -25,10 +25,11 @@
package com.sun.tools.doclets.formats.html;
import com.sun.tools.doclets.internal.toolkit.util.*;
import com.sun.javadoc.*;
import java.io.*;
import com.sun.javadoc.*;
import com.sun.tools.doclets.internal.toolkit.util.*;
/**
* Class to generate Tree page for a package. The name of the file generated is
* "package-tree.html" and it is generated in the respective package directory.
......@@ -145,8 +146,10 @@ public class PackageTreeWriter extends AbstractTreeWriter {
dl();
dt();
strongText("doclet.Package_Hierarchies");
dtEnd();
dd();
navLinkMainTree(configuration.getText("doclet.All_Packages"));
ddEnd();
dlEnd();
hr();
}
......
......@@ -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 @@ public class TagletWriterImpl extends TagletWriter {
output.append(DocletConstants.NL + "<P>" +
DocletConstants.NL);
}
output.append("</DD>");
} else {
if (Util.isDeprecated(member.containingClass())) {
output.append("<DD><STRONG>" +
ConfigurationImpl.getInstance().
getText("doclet.Deprecated") + "</STRONG>&nbsp;");
getText("doclet.Deprecated") + "</STRONG>&nbsp;</DD>");
}
}
}
......@@ -123,7 +125,7 @@ public class TagletWriterImpl extends TagletWriter {
public TagletOutput getParamHeader(String header) {
StringBuffer result = new StringBuffer();
result.append("<DT>");
result.append("<STRONG>" + header + "</STRONG>");
result.append("<STRONG>" + header + "</STRONG></DT>");
return new TagletOutputImpl(result.toString());
}
......@@ -132,7 +134,7 @@ public class TagletWriterImpl extends TagletWriter {
*/
public TagletOutput paramTagOutput(ParamTag paramTag, String paramName) {
TagletOutput result = new TagletOutputImpl("<DD><CODE>" + paramName + "</CODE>"
+ " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false));
+ " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false) + "</DD>");
return result;
}
......@@ -142,9 +144,9 @@ public class TagletWriterImpl extends TagletWriter {
public TagletOutput returnTagOutput(Tag returnTag) {
TagletOutput result = new TagletOutputImpl(DocletConstants.NL + "<DT>" +
"<STRONG>" + htmlWriter.configuration.getText("doclet.Returns") +
"</STRONG>" + "<DD>" +
"</STRONG>" + "</DT>" + "<DD>" +
htmlWriter.commentTagsToString(returnTag, null, returnTag.inlineTags(),
false));
false) + "</DD>");
return result;
}
......@@ -174,22 +176,21 @@ public class TagletWriterImpl extends TagletWriter {
}
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 + "</DD>");
}
private String addSeeHeader(String result) {
if (result != null && result.length() > 0) {
return result + ", " + DocletConstants.NL;
} else {
return "<DT><STRONG>" + htmlWriter.configuration().getText("doclet.See_Also") + "</STRONG><DD>";
return "<DT><STRONG>" + htmlWriter.configuration().getText("doclet.See_Also") + "</STRONG></DT><DD>";
}
}
......@@ -205,7 +206,8 @@ public class TagletWriterImpl extends TagletWriter {
}
result += htmlWriter.commentTagsToString(simpleTags[i], null, simpleTags[i].inlineTags(), false);
}
return new TagletOutputImpl(result + "</DD>" + DocletConstants.NL);
result += "</DD>" + DocletConstants.NL;
return new TagletOutputImpl(result);
}
/**
......@@ -222,7 +224,7 @@ public class TagletWriterImpl extends TagletWriter {
*/
public TagletOutput getThrowsHeader() {
return new TagletOutputImpl(DocletConstants.NL + "<DT>" + "<STRONG>" +
htmlWriter.configuration().getText("doclet.Throws") + "</STRONG>");
htmlWriter.configuration().getText("doclet.Throws") + "</STRONG></DT>");
}
/**
......@@ -241,6 +243,7 @@ public class TagletWriterImpl extends TagletWriter {
if (text != null && text.toString().length() > 0) {
result += " - " + text;
}
result += "</DD>";
return new TagletOutputImpl(result);
}
......@@ -250,7 +253,7 @@ public class TagletWriterImpl extends TagletWriter {
public TagletOutput throwsTagOutput(Type throwsType) {
return new TagletOutputImpl(DocletConstants.NL + "<DD>" +
htmlWriter.codeText(htmlWriter.getLink(
new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))));
new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))) + "</DD>");
}
/**
......
......@@ -25,9 +25,11 @@
package com.sun.tools.doclets.formats.html;
import com.sun.tools.doclets.internal.toolkit.util.*;
import com.sun.javadoc.*;
import java.io.*;
import com.sun.javadoc.*;
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 @@ public class TreeWriter extends AbstractTreeWriter {
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 @@ public class TreeWriter extends AbstractTreeWriter {
print(", ");
}
}
ddEnd();
dlEnd();
hr();
}
......
......@@ -244,6 +244,31 @@ public abstract class HtmlDocWriter extends HtmlWriter {
return "";
}
/**
* 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.
......
......@@ -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.
......@@ -60,6 +61,11 @@ public class HtmlWriter extends PrintWriter {
*/
protected Configuration configuration;
/**
* The flag to indicate whether a member details list is printed or not.
*/
protected boolean memberDetailsListPrinted;
/**
* Constructor.
*
......@@ -79,6 +85,7 @@ public class HtmlWriter extends PrintWriter {
super(Util.genWriter(configuration, path, filename, docencoding));
this.configuration = configuration;
htmlFilename = filename;
this.memberDetailsListPrinted = false;
}
/**
......@@ -529,7 +536,14 @@ public class HtmlWriter extends PrintWriter {
}
/**
* Print &lt;DT&gt; tag.
* Print &lt;/DT&gt; tag.
*/
public void dtEnd() {
print("</DT>");
}
/**
* Print &lt;DD&gt; tag.
*/
public void dd() {
print("<DD>");
......
......@@ -25,9 +25,10 @@
package com.sun.tools.doclets.internal.toolkit;
import com.sun.javadoc.*;
import java.io.*;
import com.sun.javadoc.*;
/**
* The interface for writing serialized form output.
*
......@@ -147,22 +148,27 @@ public interface SerializedFormWriter {
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 @@ public interface SerializedFormWriter {
/**
* 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.
......
......@@ -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 @@ import java.util.*;
* 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 @@ public class SerializedFormBuilder extends AbstractBuilder {
* Build the method footer.
*/
public void buildMethodFooter() {
methodWriter.writeMemberFooter((MethodDoc) currentMember);
methodWriter.writeMemberFooter();
}
/**
......@@ -405,15 +407,18 @@ public class SerializedFormBuilder extends AbstractBuilder {
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 @@ public class SerializedFormBuilder extends AbstractBuilder {
}
/**
* Build the field footer.
* Build the field sub footer.
*/
public void buildFieldFooter() {
public void buildFieldSubFooter() {
if (! currentClass.definesSerializableFields()) {
fieldWriter.writeMemberFooter((FieldDoc) currentMember);
fieldWriter.writeMemberFooter();
}
}
......
<?xml version='1.0' encoding='utf-8'?>
<!--
Copyright 2003 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. Sun designates this
particular file as subject to the "Classpath" exception as provided
by Sun in the LICENSE file that accompanied this code.
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.
-->
<Doclet>
<PackageDoc>
<PackageHeader/>
<Summary>
<SummaryHeader/>
<InterfaceSummary/>
<ClassSummary/>
<EnumSummary/>
<ExceptionSummary/>
<ErrorSummary/>
<AnnotationTypeSummary/>
<SummaryFooter/>
</Summary>
<PackageDescription/>
<PackageTags/>
<PackageFooter/>
</PackageDoc>
<AnnotationTypeDoc>
<AnnotationTypeHeader/>
<DeprecationInfo/>
<AnnotationTypeSignature/>
<AnnotationTypeDescription/>
<AnnotationTypeTagInfo/>
<MemberSummary>
<AnnotationTypeRequiredMemberSummary/>
<AnnotationTypeOptionalMemberSummary/>
</MemberSummary>
<AnnotationTypeRequiredMemberDetails>
<Header/>
<AnnotationTypeRequiredMember>
<MemberHeader/>
<Signature/>
<DeprecationInfo/>
<MemberComments/>
<TagInfo/>
<MemberFooter/>
</AnnotationTypeRequiredMember>
</AnnotationTypeRequiredMemberDetails>
<AnnotationTypeOptionalMemberDetails>
<AnnotationTypeOptionalMember>
<MemberHeader/>
<Signature/>
<DeprecationInfo/>
<MemberComments/>
<TagInfo/>
<DefaultValueInfo/>
<MemberFooter/>
</AnnotationTypeOptionalMember>
<Footer/>
</AnnotationTypeOptionalMemberDetails>
<AnnotationTypeFooter/>
</AnnotationTypeDoc>
<ClassDoc>
<ClassHeader/>
<ClassTree/>
<TypeParamInfo/>
<SuperInterfacesInfo/>
<ImplementedInterfacesInfo/>
<SubClassInfo/>
<SubInterfacesInfo/>
<InterfaceUsageInfo/>
<NestedClassInfo/>
<DeprecationInfo/>
<ClassSignature/>
<ClassDescription/>
<ClassTagInfo/>
<MemberSummary>
<NestedClassesSummary/>
<NestedClassesInheritedSummary/>
<EnumConstantsSummary/>
<FieldsSummary/>
<FieldsInheritedSummary/>
<ConstructorsSummary/>
<MethodsSummary/>
<MethodsInheritedSummary/>
</MemberSummary>
<EnumConstantsDetails>
<Header/>
<EnumConstant>
<EnumConstantHeader/>
<Signature/>
<DeprecationInfo/>
<EnumConstantComments/>
<TagInfo/>
<EnumConstantFooter/>
</EnumConstant>
<Footer/>
</EnumConstantsDetails>
<FieldDetails>
<Header/>
<FieldDoc>
<FieldHeader/>
<Signature/>
<DeprecationInfo/>
<FieldComments/>
<TagInfo/>
<FieldFooter/>
</FieldDoc>
<Footer/>
</FieldDetails>
<ConstructorDetails>
<Header/>
<ConstructorDoc>
<ConstructorHeader/>
<Signature/>
<DeprecationInfo/>
<ConstructorComments/>
<TagInfo/>
<ConstructorFooter/>
</ConstructorDoc>
<Footer/>
</ConstructorDetails>
<MethodDetails>
<Header/>
<MethodDoc>
<MethodHeader/>
<Signature/>
<DeprecationInfo/>
<MethodComments/>
<TagInfo/>
<MethodFooter/>
</MethodDoc>
<Footer/>
</MethodDetails>
<ClassFooter/>
</ClassDoc>
<ConstantSummary>
<Header/>
<Contents/>
<ConstantSummaries>
<PackageConstantSummary>
<PackageHeader/>
<ClassConstantSummary>
<ClassHeader/>
<ConstantMembers/>
<ClassFooter/>
</ClassConstantSummary>
</PackageConstantSummary>
</ConstantSummaries>
<Footer/>
</ConstantSummary>
<SerializedForm>
<Header/>
<SerializedFormSummaries>
<PackageSerializedForm>
<PackageHeader/>
<ClassSerializedForm>
<ClassHeader/>
<SerialUIDInfo/>
<MethodHeader/>
<SerializableMethods>
<MethodSubHeader/>
<DeprecatedMethodInfo/>
<MethodInfo>
<MethodDescription/>
<MethodTags/>
</MethodInfo>
<MethodFooter/>
</SerializableMethods>
<FieldHeader/>
<SerializableFields>
<FieldSubHeader/>
<FieldDeprecationInfo/>
<FieldInfo/>
<FieldFooter/>
</SerializableFields>
</ClassSerializedForm>
</PackageSerializedForm>
</SerializedFormSummaries>
<Footer/>
</SerializedForm>
</Doclet>
<?xml version='1.0' encoding='utf-8'?>
<!--
Copyright 2003 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. Sun designates this
particular file as subject to the "Classpath" exception as provided
by Sun in the LICENSE file that accompanied this code.
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.
-->
<Doclet>
<PackageDoc>
<PackageHeader/>
<Summary>
<SummaryHeader/>
<InterfaceSummary/>
<ClassSummary/>
<EnumSummary/>
<ExceptionSummary/>
<ErrorSummary/>
<AnnotationTypeSummary/>
<SummaryFooter/>
</Summary>
<PackageDescription/>
<PackageTags/>
<PackageFooter/>
</PackageDoc>
<AnnotationTypeDoc>
<AnnotationTypeHeader/>
<DeprecationInfo/>
<AnnotationTypeSignature/>
<AnnotationTypeDescription/>
<AnnotationTypeTagInfo/>
<MemberSummary>
<AnnotationTypeRequiredMemberSummary/>
<AnnotationTypeOptionalMemberSummary/>
</MemberSummary>
<AnnotationTypeRequiredMemberDetails>
<Header/>
<AnnotationTypeRequiredMember>
<MemberHeader/>
<Signature/>
<DeprecationInfo/>
<MemberComments/>
<TagInfo/>
<MemberFooter/>
</AnnotationTypeRequiredMember>
</AnnotationTypeRequiredMemberDetails>
<AnnotationTypeOptionalMemberDetails>
<AnnotationTypeOptionalMember>
<MemberHeader/>
<Signature/>
<DeprecationInfo/>
<MemberComments/>
<TagInfo/>
<DefaultValueInfo/>
<MemberFooter/>
</AnnotationTypeOptionalMember>
<Footer/>
</AnnotationTypeOptionalMemberDetails>
<AnnotationTypeFooter/>
</AnnotationTypeDoc>
<ClassDoc>
<ClassHeader/>
<ClassTree/>
<TypeParamInfo/>
<SuperInterfacesInfo/>
<ImplementedInterfacesInfo/>
<SubClassInfo/>
<SubInterfacesInfo/>
<InterfaceUsageInfo/>
<NestedClassInfo/>
<DeprecationInfo/>
<ClassSignature/>
<ClassDescription/>
<ClassTagInfo/>
<MemberSummary>
<NestedClassesSummary/>
<NestedClassesInheritedSummary/>
<EnumConstantsSummary/>
<FieldsSummary/>
<FieldsInheritedSummary/>
<ConstructorsSummary/>
<MethodsSummary/>
<MethodsInheritedSummary/>
</MemberSummary>
<EnumConstantsDetails>
<Header/>
<EnumConstant>
<EnumConstantHeader/>
<Signature/>
<DeprecationInfo/>
<EnumConstantComments/>
<TagInfo/>
<EnumConstantFooter/>
</EnumConstant>
<Footer/>
</EnumConstantsDetails>
<FieldDetails>
<Header/>
<FieldDoc>
<FieldHeader/>
<Signature/>
<DeprecationInfo/>
<FieldComments/>
<TagInfo/>
<FieldFooter/>
</FieldDoc>
<Footer/>
</FieldDetails>
<ConstructorDetails>
<Header/>
<ConstructorDoc>
<ConstructorHeader/>
<Signature/>
<DeprecationInfo/>
<ConstructorComments/>
<TagInfo/>
<ConstructorFooter/>
</ConstructorDoc>
<Footer/>
</ConstructorDetails>
<MethodDetails>
<Header/>
<MethodDoc>
<MethodHeader/>
<Signature/>
<DeprecationInfo/>
<MethodComments/>
<TagInfo/>
<MethodFooter/>
</MethodDoc>
<Footer/>
</MethodDetails>
<ClassFooter/>
</ClassDoc>
<ConstantSummary>
<Header/>
<Contents/>
<ConstantSummaries>
<PackageConstantSummary>
<PackageHeader/>
<ClassConstantSummary>
<ClassHeader/>
<ConstantMembers/>
<ClassFooter/>
</ClassConstantSummary>
</PackageConstantSummary>
</ConstantSummaries>
<Footer/>
</ConstantSummary>
<SerializedForm>
<Header/>
<SerializedFormSummaries>
<PackageSerializedForm>
<PackageHeader/>
<ClassSerializedForm>
<ClassHeader/>
<SerialUIDInfo/>
<MethodHeader/>
<SerializableMethods>
<MethodSubHeader/>
<DeprecatedMethodInfo/>
<MethodInfo>
<MethodDescription/>
<MethodTags/>
</MethodInfo>
<MethodFooter/>
</SerializableMethods>
<FieldHeader/>
<SerializableFields>
<FieldSubHeader/>
<FieldDeprecationInfo/>
<FieldInfo/>
<FieldSubFooter/>
</SerializableFields>
</ClassSerializedForm>
</PackageSerializedForm>
</SerializedFormSummaries>
<Footer/>
</SerializedForm>
</Doclet>
/*
* Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-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
......@@ -111,6 +111,7 @@ public class JavacRoundEnvironment implements RoundEnvironment {
*/
public Set<? extends Element> getElementsAnnotatedWith(TypeElement a) {
Set<Element> result = Collections.emptySet();
Types typeUtil = processingEnv.getTypeUtils();
if (a.getKind() != ElementKind.ANNOTATION_TYPE)
throw new IllegalArgumentException(NOT_AN_ANNOTATION_TYPE + a);
......@@ -122,7 +123,7 @@ public class JavacRoundEnvironment implements RoundEnvironment {
throw new AssertionError("Bad implementation type for " + tm);
ElementScanner6<Set<Element>, DeclaredType> scanner =
new AnnotationSetScanner(result);
new AnnotationSetScanner(result, typeUtil);
for (Element element : rootElements)
result = scanner.scan(element, annotationTypeElement);
......@@ -135,9 +136,11 @@ public class JavacRoundEnvironment implements RoundEnvironment {
ElementScanner6<Set<Element>, DeclaredType> {
// Insertion-order preserving set
Set<Element> annotatedElements = new LinkedHashSet<Element>();
Types typeUtil;
AnnotationSetScanner(Set<Element> defaultSet) {
AnnotationSetScanner(Set<Element> defaultSet, Types typeUtil) {
super(defaultSet);
this.typeUtil = typeUtil;
}
@Override
......@@ -145,7 +148,7 @@ public class JavacRoundEnvironment implements RoundEnvironment {
java.util.List<? extends AnnotationMirror> annotationMirrors =
processingEnv.getElementUtils().getAllAnnotationMirrors(e);
for (AnnotationMirror annotationMirror : annotationMirrors) {
if (annotationMirror.getAnnotationType().equals(p))
if (typeUtil.isSameType(annotationMirror.getAnnotationType(), p))
annotatedElements.add(e);
}
e.accept(this, p);
......
......@@ -35,9 +35,11 @@ import java.io.IOException;
* processor. Files created in this way will be known to the
* annotation processing tool implementing this interface, better
* enabling the tool to manage them. Source and class files so
* created will be considered for processing by the tool after the
* {@code close} method has been called on the {@code Writer} or
* {@code OutputStream} used to write the contents of the file.
* created will be {@linkplain RoundEnvironment#getRootElements
* considered for processing} by the tool in a subsequent {@linkplain
* RoundEnvironment round of processing} after the {@code close}
* method has been called on the {@code Writer} or {@code
* OutputStream} used to write the contents of the file.
*
* Three kinds of files are distinguished: source files, class files,
* and auxiliary resource files.
......
......@@ -91,7 +91,7 @@ public class AuthorDD
// Test multiple @author tags:
{ "<DT><STRONG>Author:</STRONG></DT>"+NL+" <DD>Doug Kramer, Jamie, Neal</DD>"+NL,
{ "<DT><STRONG>Author:</STRONG></DT>"+NL+" <DD>Doug Kramer, Jamie, Neal</DD>",
BUGID + FS + "p1" + FS + "C1.html" },
};
......
......@@ -48,7 +48,7 @@ public class TestClassCrossReferences extends JavadocTester {
"<A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/math/BigInteger.html?is-external=true#gcd(java.math.BigInteger)\" " +
"title=\"class or interface in java.math\"><CODE>Link to external member gcd</CODE></A>"},
{BUG_ID + FS + "C.html",
"<STRONG>Overrides:</STRONG><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE>"}
"<STRONG>Overrides:</STRONG></DT><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE>"}
};
private static final String[][] NEGATED_TEST = NO_TEST;
private static final String[] ARGS =
......
......@@ -45,9 +45,10 @@ public class TestConstructorIndent extends JavadocTester {
//Input for string search tests.
private static final String[][] TEST = {
{BUG_ID + FS + "C.html", "<DL>"+NL+"<DD>This is just a simple constructor."+ NL +
"<P>"+NL+"<DL>"+NL+"<DT><STRONG>Parameters:</STRONG><DD><CODE>i</CODE> - a param.</DL>"+NL +
"</DL>"
{BUG_ID + FS + "C.html", "<DL>" + NL + "<DD>This is just a simple constructor." + NL +
"<P>" + NL + "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG>" +
"</DT><DD><CODE>i</CODE> - a param.</DD></DL>" + NL +
"</DD>" + NL + "</DL>"
}
};
private static final String[][] NEGATED_TEST = NO_TEST;
......
......@@ -78,13 +78,12 @@ public class TestDeprecatedDocs extends JavadocTester {
{TARGET_FILE2, "<STRONG>Deprecated.</STRONG>" + NL +
"<P>" + NL +
"<DL>" + NL +
"<DT><PRE><FONT SIZE=\"-1\">@Deprecated" + NL +
"<PRE><FONT SIZE=\"-1\">@Deprecated" + NL +
"</FONT>public class <STRONG>DeprecatedClassByAnnotation</STRONG>"},
{TARGET_FILE2, "public int <STRONG>field</STRONG></PRE>" + NL +
"<DL>" + NL +
"<DD><STRONG>Deprecated.</STRONG>&nbsp;<DL>"},
"<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD></DL>"},
{TARGET_FILE2, "<FONT SIZE=\"-1\">@Deprecated" + NL +
"</FONT>public <STRONG>DeprecatedClassByAnnotation</STRONG>()</PRE>" + NL +
......
......@@ -39,13 +39,13 @@ public class TestExternalOverridenMethod extends JavadocTester {
private static final String BUG_ID = "4857717";
private static final String[][] TEST = {
{BUG_ID + FS + "pkg" + FS + "XReader.html",
"<STRONG>Overrides:</STRONG><DD><CODE><A HREF=\"" +
"<STRONG>Overrides:</STRONG></DT><DD><CODE><A HREF=\"" +
"http://java.sun.com/j2se/1.4.1/docs/api/java/io/FilterReader.html?is-external=true#read()\"" +
" title=\"class or interface in java.io\">read</A></CODE> in class " +
"<CODE><A HREF=\"http://java.sun.com/j2se/1.4.1/docs/api/java/io/FilterReader.html?is-external=true\"" +
" title=\"class or interface in java.io\">FilterReader</A>"},
{BUG_ID + FS + "pkg" + FS + "XReader.html",
"<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"" +
"<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"" +
"http://java.sun.com/j2se/1.4.1/docs/api/java/io/DataInput.html?is-external=true#readInt()\"" +
" title=\"class or interface in java.io\">readInt</A></CODE> in interface " +
"<CODE><A HREF=\"http://java.sun.com/j2se/1.4.1/docs/api/java/io/DataInput.html?is-external=true\"" +
......
......@@ -67,7 +67,7 @@ public class TestHref extends JavadocTester {
},
//@see test.
{BUG_ID + FS + "pkg" + FS + "C2.html",
"See Also:</STRONG><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">"
"See Also:</STRONG></DT><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">"
},
//Header does not link to the page itself.
......
/*
* Copyright 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*/
package pkg1;
import java.io.IOException;
import java.io.Serializable;
/**
* A class comment for testing.
*
* @author Bhavesh Patel
* @see C2
* @since JDK1.0
*/
public class C1 implements Serializable {
/**
* This field indicates whether the C1 is undecorated.
*
* @see #setUndecorated(boolean)
* @since 1.4
* @serial
* @deprecated As of JDK version 1.5, replaced by
* {@link C1#setUndecorated(boolean) setUndecorated(boolean)}.
*/
@Deprecated
public boolean undecorated = false;
private String title;
/**
* This enum specifies the possible modal exclusion types.
*
* @since 1.6
*/
public static enum ModalExclusionType {
/**
* No modal exclusion.
*/
NO_EXCLUDE,
/**
* <code>APPLICATION_EXCLUDE</code> indicates that a top-level window
* won't be blocked by any application-modal dialogs. Also, it isn't
* blocked by document-modal dialogs from outside of its child hierarchy.
*/
APPLICATION_EXCLUDE
};
/**
* Constructor.
*
* @param title the title
* @param test boolean value
* @exception IllegalArgumentException if the <code>owner</code>'s
* <code>GraphicsConfiguration</code> is not from a screen device
* @exception HeadlessException
*/
public C1(String title, boolean test) {
}
public C1(String title) {
}
/**
* Method comments.
* @param undecorated <code>true</code> if no decorations are
* to be enabled;
* <code>false</code> if decorations are to be enabled.
* @see #readObject()
* @since 1.4
*/
public void setUndecorated(boolean undecorated) {
/* Make sure we don't run in the middle of peer creation.*/
}
/**
* @see #setUndecorated(boolean)
*/
public void readObject() throws IOException {
}
}
/*
* Copyright 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*/
package pkg1;
import java.io.ObjectInputStream;
import java.io.IOException;
import java.io.Serializable;
/**
* A class comment for testing.
*
* @author Bhavesh Patel
* @see C1
* @since JDK1.0
*/
public class C2 implements Serializable {
/**
* This field indicates title.
*/
String title;
public static enum ModalType {
NO_EXCLUDE
};
/**
* Constructor.
*
*/
public C2() {
}
public C2(String title) {
}
/**
* Set visible.
*
* @param set boolean
* @since 1.4
* @deprecated As of JDK version 1.5, replaced by
* {@link C1#setUndecorated(boolean) setUndecorated(boolean)}.
*/
@Deprecated
public void setVisible(boolean set) {
}
/**
* Reads the object stream.
*
* @param s ObjectInputStream
* @throws <code>IOException</code>
* @deprecated As of JDK version 1.5, replaced by
* {@link C1#setUndecorated(boolean) setUndecorated(boolean)}.
*/
@Deprecated
public void readObject(ObjectInputStream s) throws IOException {
}
}
/*
* Copyright 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*/
package pkg1;
import java.lang.annotation.*;
/**
* Test Annotation class.
*
* @author Bhavesh Patel
* @since 1.5
*/
@Retention(RetentionPolicy.SOURCE)
public @interface C3 {
/**
* Comment.
*/
String[] value();
}
/*
* Copyright 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*/
package pkg1;
import java.lang.annotation.*;
/*
* The @Inherited annotation has no effect when applied to an interface.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface C4 {
boolean value() default true;
}
/*
* Copyright 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*/
package pkg1;
import java.io.Serializable;
/**
* Test for Serializable
*
* @author Bhavesh Patel
* @deprecated This class is no longer used.
*/
@Deprecated
public abstract class C5 implements Serializable {
/**
* The name for this class.
*
* @serial
*/
private String name;
/**
* @serial
*/
private int publicKey;
/**
* Constructor for serialization only.
*/
protected C5() {
}
/**
* Prints general information.
*
*/
public void printInfo() {
}
}
......@@ -73,10 +73,10 @@ public class TestIndex extends JavadocTester {
{BUG_ID + FS + "index-all.html",
"<DT><A HREF=\"./pkg/C.html#Java\"><STRONG>Java</STRONG></A> - " + NL +
"Static variable in class pkg.<A HREF=\"./pkg/C.html\" title=\"class in pkg\">C</A>" + NL +
"<DD>&nbsp;" + NL +
"</DT><DD>&nbsp;</DD>" + NL + NL +
"<DT><A HREF=\"./pkg/C.html#JDK\"><STRONG>JDK</STRONG></A> - " + NL +
"Static variable in class pkg.<A HREF=\"./pkg/C.html\" title=\"class in pkg\">C</A>" + NL +
"<DD>&nbsp;"},
"</DT><DD>&nbsp;</DD>"},
};
private static final String[][] NEGATED_TEST = NO_TEST;
......
......@@ -55,7 +55,7 @@ public class TestInterface extends JavadocTester {
// Make sure known implementing class list is correct and omits type parameters.
{BUG_ID + FS + "pkg" + FS + "Interface.html",
"<DT><STRONG>All Known Implementing Classes:</STRONG> " +
"<DT><STRONG>All Known Implementing Classes:</STRONG></DT> " +
"<DD><A HREF=\"../pkg/Child.html\" " +
"title=\"class in pkg\">Child</A>, " +
"<A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">" +
......@@ -63,7 +63,9 @@ public class TestInterface extends JavadocTester {
// Make sure "All Implemented Interfaces": has substituted type parameters
{BUG_ID + FS + "pkg" + FS + "Child.html",
"<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A>&lt;T&gt;"
"<STRONG>All Implemented Interfaces:</STRONG></DT> <DD>" +
"<A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">" +
"Interface</A>&lt;T&gt;"
},
//Make sure Class Tree has substituted type parameters.
{BUG_ID + FS + "pkg" + FS + "Child.html",
......@@ -75,15 +77,15 @@ public class TestInterface extends JavadocTester {
},
//Make sure "Direct Know Subclasses" omits type parameters
{BUG_ID + FS + "pkg" + FS + "Parent.html",
"<STRONG>Direct Known Subclasses:</STRONG> <DD><A HREF=\"../pkg/Child.html\" title=\"class in pkg\">Child</A>"
"<STRONG>Direct Known Subclasses:</STRONG></DT> <DD><A HREF=\"../pkg/Child.html\" title=\"class in pkg\">Child</A>"
},
//Make sure "Specified By" has substituted type parameters.
{BUG_ID + FS + "pkg" + FS + "Child.html",
"<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg/Interface.html#method()\">method</A></CODE> in interface <CODE><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
"<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg/Interface.html#method()\">method</A></CODE> in interface <CODE><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
},
//Make sure "Overrides" has substituted type parameters.
{BUG_ID + FS + "pkg" + FS + "Child.html",
"<STRONG>Overrides:</STRONG><DD><CODE><A HREF=\"../pkg/Parent.html#method()\">method</A></CODE> in class <CODE><A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">Parent</A>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
"<STRONG>Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg/Parent.html#method()\">method</A></CODE> in class <CODE><A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">Parent</A>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
},
};
private static final String[][] NEGATED_TEST = {
......
......@@ -63,7 +63,8 @@ public class TestLinkOption extends JavadocTester {
"title=\"class or interface in java.lang\">Object</A>&nbsp;p3)"
},
{BUG_ID + "-1" + FS + "java" + FS + "lang" + FS + "StringBuilderChild.html",
"public abstract class <STRONG>StringBuilderChild</STRONG><DT>extends <A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\">Object</A>"
"public abstract class <STRONG>StringBuilderChild</STRONG>" + NL +
"extends <A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\">Object</A>"
},
};
......
......@@ -59,7 +59,7 @@ public class TestLinkTaglet extends JavadocTester {
" Link to another inner class: <A HREF=\"../pkg/C.InnerC2.html\" title=\"class in pkg\"><CODE>C.InnerC2</CODE></A>"
},
{BUG_ID + FS + "pkg" + FS + "C.InnerC2.html",
"Enclosing class:</STRONG><DD><A HREF=\"../pkg/C.html\" title=\"class in pkg\">C</A>"
"Enclosing class:</STRONG></DT><DD><A HREF=\"../pkg/C.html\" title=\"class in pkg\">C</A>"
},
};
private static final String[][] NEGATED_TEST = {
......
......@@ -74,7 +74,7 @@ public class TestMemberInheritence extends JavadocTester {
// Test overriding/implementing methods with generic parameters.
{BUG_ID + FS + "pkg" + FS + "BaseClass.html",
"<DT><STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg/BaseInterface.html#getAnnotation(java.lang.Class)\">getAnnotation</A></CODE> in interface <CODE><A HREF=\"../pkg/BaseInterface.html\" title=\"interface in pkg\">BaseInterface</A></CODE></DL>"},
"<DT><STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg/BaseInterface.html#getAnnotation(java.lang.Class)\">getAnnotation</A></CODE> in interface <CODE><A HREF=\"../pkg/BaseInterface.html\" title=\"interface in pkg\">BaseInterface</A></CODE></DD>"+NL+"</DL>"},
// Test diamond inheritence member summary (6256068)
{BUG_ID + FS + "diamond" + FS + "Z.html",
......
......@@ -54,7 +54,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
{BUG_ID + FS + "pkg" + FS + "Coin.html", "Enum Coin</H2>"},
//Make sure enum signature is correct.
{BUG_ID + FS + "pkg" + FS + "Coin.html", "public enum "+
"<STRONG>Coin</STRONG><DT>extends java.lang.Enum&lt;" +
"<STRONG>Coin</STRONG>" + NL + "extends java.lang.Enum&lt;" +
"<A HREF=\"../pkg/Coin.html\" title=\"enum in pkg\">Coin</A>&gt;"
},
//Check for enum constant section
......@@ -79,20 +79,20 @@ public class TestNewLanguageFeatures extends JavadocTester {
"Class TypeParameters&lt;E&gt;</H2>"},
//Check class type parameters section.
{BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
"<DT><STRONG>Type Parameters:</STRONG><DD><CODE>E</CODE> - " +
"<DT><STRONG>Type Parameters:</STRONG></DT><DD><CODE>E</CODE> - " +
"the type parameter for this class."},
//Type parameters in @see/@link
{BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
"<DT><STRONG>See Also:</STRONG><DD><A HREF=\"../pkg/TypeParameters.html\" " +
"title=\"class in pkg\"><CODE>TypeParameters</CODE></A></DL>"},
"<DT><STRONG>See Also:</STRONG></DT><DD><A HREF=\"../pkg/TypeParameters.html\" " +
"title=\"class in pkg\"><CODE>TypeParameters</CODE></A></DD></DL>"},
//Method that uses class type parameter.
{BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
"(<A HREF=\"../pkg/TypeParameters.html\" title=\"type " +
"parameter in TypeParameters\">E</A>&nbsp;param)"},
//Method type parameter section.
{BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
"<STRONG>Type Parameters:</STRONG><DD><CODE>T</CODE> - This is the first " +
"type parameter.<DD><CODE>V</CODE> - This is the second type " +
"<STRONG>Type Parameters:</STRONG></DT><DD><CODE>T</CODE> - This is the first " +
"type parameter.</DD><DD><CODE>V</CODE> - This is the second type " +
"parameter."},
//Signature of method with type parameters
{BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
......@@ -117,17 +117,17 @@ public class TestNewLanguageFeatures extends JavadocTester {
//Signature of subclass that has type parameters.
{BUG_ID + FS + "pkg" + FS + "TypeParameterSubClass.html",
"public class <STRONG>TypeParameterSubClass&lt;T extends java.lang.String&gt;" +
"</STRONG><DT>extends <A HREF=\"../pkg/TypeParameterSuperClass.html\" " +
"</STRONG>" + NL + "extends <A HREF=\"../pkg/TypeParameterSuperClass.html\" " +
"title=\"class in pkg\">TypeParameterSuperClass</A>&lt;T&gt;"},
//Interface generic parameter substitution
//Signature of subclass that has type parameters.
{BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
"<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;E&gt;, <A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;E&gt;</DD>"},
"<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;E&gt;, <A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;E&gt;</DD>"},
{BUG_ID + FS + "pkg" + FS + "SuperInterface.html",
"<STRONG>All Known Subinterfaces:</STRONG> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;V&gt;</DD>"},
"<STRONG>All Known Subinterfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;V&gt;</DD>"},
{BUG_ID + FS + "pkg" + FS + "SubInterface.html",
"<STRONG>All Superinterfaces:</STRONG> <DD><A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;V&gt;</DD>"},
"<STRONG>All Superinterfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;V&gt;</DD>"},
//=================================
// VAR ARG TESTING
......@@ -166,7 +166,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"Element Detail"},
//Make sure default annotation type value is printed when necessary.
{BUG_ID + FS + "pkg" + FS + "AnnotationType.html",
"<STRONG>Default:</STRONG><DD>\"unknown\"</DD>"},
"<STRONG>Default:</STRONG></DT><DD>\"unknown\"</DD>"},
//=================================
// ANNOTATION TYPE USAGE TESTING
......@@ -182,7 +182,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<FONT SIZE=\"-1\">" +
"<A HREF=\"../pkg/AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</A>(<A HREF=\"../pkg/AnnotationType.html#optional()\">optional</A>=\"Class Annotation\","+NL +
" <A HREF=\"../pkg/AnnotationType.html#required()\">required</A>=1994)"+NL +
"</FONT>public class <STRONG>AnnotationTypeUsage</STRONG><DT>extends java.lang.Object</DL>"},
"</FONT>public class <STRONG>AnnotationTypeUsage</STRONG>" + NL +
"extends java.lang.Object"},
//FIELD
{BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html",
......@@ -270,8 +271,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
{BUG_ID + FS + "pkg1" + FS + "B.html",
"<PRE><FONT SIZE=\"-1\"><A HREF=\"../pkg1/A.html\" title=\"annotation in pkg1\">@A</A>"},
{BUG_ID + FS + "pkg1" + FS + "B.html",
"</FONT>public interface <STRONG>B</STRONG></DL>" + NL +
"</PRE>"},
"</FONT>public interface <STRONG>B</STRONG></PRE>"},
//==============================================================
......@@ -525,7 +525,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<FONT SIZE=\"-1\">" + NL +
"<A HREF=\"../pkg/AnnotationTypeUndocumented.html\" title=\"annotation in pkg\">@AnnotationTypeUndocumented</A>(<A HREF=\"../pkg/AnnotationType.html#optional\">optional</A>=\"Class Annotation\"," + NL +
" <A HREF=\"../pkg/AnnotationType.html#required\">required</A>=1994)" + NL +
"</FONT>public class <STRONG>AnnotationTypeUsage</STRONG><DT>extends java.lang.Object</DL>"},
"</FONT>public class <STRONG>AnnotationTypeUsage</STRONG></DT><DT>extends java.lang.Object</DT></DL>"},
//FIELD
{BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html",
......
......@@ -40,11 +40,11 @@ public class TestOverridenPrivateMethods extends JavadocTester {
private static final String[][] TEST = {
//The public method should be overriden
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
//The public method in different package should be overriden
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}
};
private static final String[][] NEGATED_TEST = {
......@@ -52,20 +52,20 @@ public class TestOverridenPrivateMethods extends JavadocTester {
//The package private method should be overriden since the base and sub class are in the same
//package. However, the link should not show up because the package private methods are not documented.
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
//The private method in should not be overriden
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
//The private method in different package should not be overriden
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
//The package private method should not be overriden since the base and sub class are in
//different packages.
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
};
private static final String[] ARGS =
......
......@@ -40,32 +40,32 @@ public class TestOverridenPrivateMethodsWithPackageFlag extends JavadocTester {
private static final String[][] TEST = {
//The public method should be overriden
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
//The public method in different package should be overriden
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
//The package private method should be overriden since the base and sub class are in the same
//package.
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
};
private static final String[][] NEGATED_TEST = {
//The private method in should not be overriden
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
//The private method in different package should not be overriden
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
//The package private method should not be overriden since the base and sub class are in
//different packages.
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
};
private static final String[] ARGS =
......
......@@ -40,32 +40,32 @@ public class TestOverridenPrivateMethodsWithPrivateFlag extends JavadocTester {
private static final String[][] TEST = {
//The public method should be overriden
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
//The package private method should be overriden since the base and sub class are in the same
//package.
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
//The public method in different package should be overriden
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
};
private static final String[][] NEGATED_TEST = {
//The private method in should not be overriden
{BUG_ID + FS + "pkg1" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
//The private method in different package should not be overriden
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
//The package private method should not be overriden since the base and sub class are in
//different packages.
{BUG_ID + FS + "pkg2" + FS + "SubClass.html",
"Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
"Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
};
......
......@@ -48,12 +48,12 @@ public class TestParamTaglet extends JavadocTester {
private static final String[][] TEST = {
//Regular param tags.
{BUG_ID + FS + "pkg" + FS + "C.html",
"<STRONG>Parameters:</STRONG><DD><CODE>param1</CODE> - testing 1 2 3." +
"<STRONG>Parameters:</STRONG></DT><DD><CODE>param1</CODE> - testing 1 2 3.</DD>" +
"<DD><CODE>param2</CODE> - testing 1 2 3."
},
//Param tags that don't match with any real parameters.
{BUG_ID + FS + "pkg" + FS + "C.html",
"<STRONG>Parameters:</STRONG><DD><CODE><I>p1</I></CODE> - testing 1 2 3." +
"<STRONG>Parameters:</STRONG></DT><DD><CODE><I>p1</I></CODE> - testing 1 2 3.</DD>" +
"<DD><CODE><I>p2</I></CODE> - testing 1 2 3."
},
//{@inherit} doc misuse does not cause doclet to throw exception.
......
......@@ -96,11 +96,11 @@ public class TestPrivateClasses extends JavadocTester {
//Make sure implemented interfaces from private superclass are inherited
{BUG_ID + "-1" + FS + "pkg" + FS + "PublicInterface.html",
"<STRONG>All Known Implementing Classes:</STRONG> <DD><A HREF=\"../pkg/PublicChild.html\" " +
"<STRONG>All Known Implementing Classes:</STRONG></DT> <DD><A HREF=\"../pkg/PublicChild.html\" " +
"title=\"class in pkg\">PublicChild</A>"},
{BUG_ID + "-1" + FS + "pkg" + FS + "PublicChild.html",
"<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/PublicInterface.html\" " +
"<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/PublicInterface.html\" " +
"title=\"interface in pkg\">PublicInterface</A>"},
//Generic interface method test.
......@@ -174,18 +174,18 @@ public class TestPrivateClasses extends JavadocTester {
},
// Should document that a method overrides method from private class.
{BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html",
"<STRONG>Overrides:</STRONG><DD><CODE>" +
"<STRONG>Overrides:</STRONG></DT><DD><CODE>" +
"<A HREF=\"../pkg/PrivateParent.html#methodOverridenFromParent(char[], int, T, V, java.util.List)\">" +
"methodOverridenFromParent</A></CODE> in class <CODE>" +
"<A HREF=\"../pkg/PrivateParent.html\" title=\"class in pkg\">" +
"PrivateParent</A></CODE></DL>"},
"PrivateParent</A></CODE></DD>" + NL + "</DL>"},
// Should document that a method is specified by private interface.
{BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html",
"<STRONG>Specified by:</STRONG><DD><CODE>" +
"<STRONG>Specified by:</STRONG></DT><DD><CODE>" +
"<A HREF=\"../pkg/PrivateInterface.html#methodInterface(int)\">" +
"methodInterface</A></CODE> in interface <CODE>" +
"<A HREF=\"../pkg/PrivateInterface.html\" title=\"interface in pkg\">" +
"PrivateInterface</A></CODE></DL>" + NL + "</DD>"},
"PrivateInterface</A></CODE></DD>" + NL + "</DL>" + NL + "</DD>"},
// Method inheritence from non-public superinterface.
{BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html",
"Methods inherited from interface " +
......@@ -209,12 +209,12 @@ public class TestPrivateClasses extends JavadocTester {
//Make sure implemented interfaces from private superclass are inherited
{BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html",
"<STRONG>All Known Implementing Classes:</STRONG> <DD><A HREF=\"../pkg/PrivateParent.html\" " +
"<STRONG>All Known Implementing Classes:</STRONG></DT> <DD><A HREF=\"../pkg/PrivateParent.html\" " +
"title=\"class in pkg\">PrivateParent</A>, " +
"<A HREF=\"../pkg/PublicChild.html\" title=\"class in pkg\">PublicChild</A>"},
{BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html",
"<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/PrivateInterface.html\" " +
"<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/PrivateInterface.html\" " +
"title=\"interface in pkg\">PrivateInterface</A>, " +
"<A HREF=\"../pkg/PublicInterface.html\" title=\"interface in pkg\">" +
"PublicInterface</A>"},
......@@ -226,7 +226,7 @@ public class TestPrivateClasses extends JavadocTester {
"<CODE><A HREF=\"../pkg2/I.html#hello(T)\">I</A></CODE></STRONG>"},
{BUG_ID + "-2" + FS + "pkg2" + FS + "C.html",
"<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg2/I.html#hello(T)\">" +
"<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg2/I.html#hello(T)\">" +
"hello</A></CODE> in interface <CODE><A HREF=\"../pkg2/I.html\" " +
"title=\"interface in pkg2\">I</A>"},
};
......
......@@ -41,39 +41,39 @@ public class TestSerializedFormDeprecationInfo extends JavadocTester {
// 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", "<DL>" + NL + "<DD><DL>" + NL + NL +
"<DT><STRONG>Throws:</STRONG>" + NL + "<DD><CODE>" +
"java.io.IOException</CODE><DT><STRONG>See Also:</STRONG>" +
"<DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>C1.setUndecorated(boolean)</CODE></A></DD>" + NL +
"</DL>" + NL + "</DL>"},
{BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL +
"<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" +
"java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" +
"</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
"</DD>" + NL + "</DL>"},
{BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
"<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
" 1.5, replaced by" + NL +
"<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version " +
"1.5, replaced by" + NL +
" <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>setUndecorated(boolean)</CODE></A>.</I>" +
"<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" +
"<DD>This field indicates whether the C1 is undecorated." + NL +
"<P>" + NL + "<DT><DD>&nbsp;<DL>" + NL +
"<DT><STRONG>Since:</STRONG></DT>" + NL +
"<P>" + NL + "</DD>" + NL + "<DD>&nbsp;</DD>" + NL +
"<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL +
" <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" +
"<DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>C1.setUndecorated(boolean)</CODE></A></DL>" + NL +
"</DL>"},
"</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
"</DD>" + NL + "</DL>"},
{BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
"<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
" 1.5, replaced by" + NL +
" <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
"<DD>Reads the object stream." + NL + "<P>" + NL +
"<DD><DL>" + NL + NL + "<DT><STRONG>Throws:" +
"</STRONG>" + NL + "<DD><CODE><code>" +
"IOException</code></CODE>" + NL +
"<DD><CODE>java.io.IOException</CODE></DD>" + NL +
"</DL>" + NL + "</DL>"},
"</DD><DD>Reads the object stream." + NL + "<P>" + NL +
"</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" +
"</STRONG></DT>" + NL + "<DD><CODE><code>" +
"IOException</code></CODE></DD>" + NL +
"<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL +
"</DD>" + NL + "</DL>"},
{BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
"<DD><STRONG>Deprecated.</STRONG>&nbsp;<DD>" +
"The name for this class." + NL + "<P>" + NL +
"<DT><DD>&nbsp;<DL>" + NL + "</DL>" + NL + "</DL>"}};
"<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD><DD>" +
"The name for this class." + NL + "<P>" + NL + "</DD>" + NL +
"<DD>&nbsp;</DD>" + NL + "</DL>"}};
// Test with -nocomment option. The serialized-form.html should
// not display the inline comments and tags but should display deprecation
......@@ -83,16 +83,16 @@ public class TestSerializedFormDeprecationInfo extends JavadocTester {
"undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
"Deprecated.</STRONG>&nbsp;<I>As of JDK version 1.5, replaced by" + NL +
" <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" +
"setUndecorated(boolean)</CODE></A>.</I></DL>"},
"setUndecorated(boolean)</CODE></A>.</I></DD></DL>"},
{BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" +
"Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
" 1.5, replaced by" + NL +
" <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
"<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
"</DL>"},
"</DD></DL>"},
{BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" +
"publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
"Deprecated.</STRONG>&nbsp;</DL>"}};
"Deprecated.</STRONG>&nbsp;</DD></DL>"}};
// Test with -nodeprecated option. The serialized-form.html should
// ignore the -nodeprecated tag and display the deprecation info. This
......
......@@ -46,14 +46,14 @@ public class TestThrowsTag extends JavadocTester {
//Input for string search tests.
private static final String[][] TEST = {
{BUG_ID + FS + "pkg" + FS + "C.html",
"<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag." + NL +
"<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag."
"<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag.</DD>" + NL +
"<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag.</DD>"
},
};
private static final String[][] NEGATED_TEST = NO_TEST;
......
/*
* 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 {}
/*
* 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 TestElementsAnnotatedWith.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
*/
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 @@ public class TestElementsAnnotatedWith extends AbstractProcessor {
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 @@ public class TestElementsAnnotatedWith extends AbstractProcessor {
} 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();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册