8245058: improve presentation of annotations for modules and packages
Reviewed-by: jjg
This commit is contained in:
parent
d51e2ab219
commit
5be4de8583
@ -160,7 +160,7 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
*/
|
||||
protected void addReceiverAnnotations(ExecutableElement member, TypeMirror rcvrType,
|
||||
List<? extends AnnotationMirror> annotationMirrors, Content tree) {
|
||||
writer.addReceiverAnnotationInfo(member, rcvrType, annotationMirrors, tree);
|
||||
tree.add(writer.getAnnotationInfo(member.getReceiverType().getAnnotationMirrors(), false));
|
||||
tree.add(Entity.NO_BREAK_SPACE);
|
||||
tree.add(utils.getTypeName(rcvrType, false));
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration, RECEIVER_TYPE, rcvrType);
|
||||
@ -212,11 +212,11 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
|
||||
if (param.getKind() != ElementKind.INSTANCE_INIT) {
|
||||
if (includeAnnotations) {
|
||||
boolean foundAnnotations =
|
||||
writer.addAnnotationInfo(param, paramTree);
|
||||
if (foundAnnotations) {
|
||||
paramTree.add(DocletConstants.NL);
|
||||
paramTree.add(" ");
|
||||
Content annotationInfo = writer.getAnnotationInfo(param, false);
|
||||
if (!annotationInfo.isEmpty()) {
|
||||
paramTree.add(annotationInfo)
|
||||
.add(DocletConstants.NL)
|
||||
.add(" ");
|
||||
}
|
||||
}
|
||||
addParam(member, param, paramType,
|
||||
@ -231,12 +231,11 @@ public abstract class AbstractExecutableMemberWriter extends AbstractMemberWrite
|
||||
paramTree.add(" ");
|
||||
|
||||
if (includeAnnotations) {
|
||||
boolean foundAnnotations =
|
||||
writer.addAnnotationInfo(parameters.get(i),
|
||||
paramTree);
|
||||
if (foundAnnotations) {
|
||||
paramTree.add(DocletConstants.NL);
|
||||
paramTree.add(" ");
|
||||
Content annotationInfo = writer.getAnnotationInfo(parameters.get(i), false);
|
||||
if (!annotationInfo.isEmpty()) {
|
||||
paramTree.add(annotationInfo)
|
||||
.add(DocletConstants.NL)
|
||||
.add(" ");
|
||||
}
|
||||
}
|
||||
addParam(member, parameters.get(i), instMeth.getParameterTypes().get(i),
|
||||
|
@ -421,235 +421,4 @@ public abstract class AbstractMemberWriter implements MemberSummaryWriter, Membe
|
||||
return writer.getMemberListItem(memberTree);
|
||||
}
|
||||
|
||||
/**
|
||||
* A content builder for member signatures.
|
||||
*/
|
||||
class MemberSignature {
|
||||
|
||||
private final Element element;
|
||||
private Content typeParameters;
|
||||
private Content returnType;
|
||||
private Content parameters;
|
||||
private Content exceptions;
|
||||
|
||||
// Threshold for length of type parameters before switching from inline to block representation.
|
||||
private static final int TYPE_PARAMS_MAX_INLINE_LENGTH = 50;
|
||||
|
||||
// Threshold for combined length of modifiers, type params and return type before breaking
|
||||
// it up with a line break before the return type.
|
||||
private static final int RETURN_TYPE_MAX_LINE_LENGTH = 50;
|
||||
|
||||
/**
|
||||
* Creates a new member signature builder.
|
||||
*
|
||||
* @param element the element for which to create a signature
|
||||
*/
|
||||
MemberSignature(Element element) {
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the type parameters for an executable member.
|
||||
*
|
||||
* @param typeParameters the content tree containing the type parameters to add.
|
||||
*
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature addTypeParameters(Content typeParameters) {
|
||||
this.typeParameters = typeParameters;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the return type for an executable member.
|
||||
*
|
||||
* @param returnType the content tree containing the return type to add.
|
||||
*
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature addReturnType(Content returnType) {
|
||||
this.returnType = returnType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the type information for a non-executable member.
|
||||
*
|
||||
* @param type the type of the member.
|
||||
*
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature addType(TypeMirror type) {
|
||||
this.returnType = writer.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.MEMBER, type));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the parameter information of an executable member.
|
||||
*
|
||||
* @param paramTree the content tree containing the parameter information.
|
||||
*
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature addParameters(Content paramTree) {
|
||||
this.parameters = paramTree;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the exception information of an executable member.
|
||||
*
|
||||
* @param exceptionTree the content tree containing the exception information
|
||||
*
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature addExceptions(Content exceptionTree) {
|
||||
this.exceptions = exceptionTree;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an HTML tree containing the member signature.
|
||||
*
|
||||
* @return an HTML tree containing the member signature
|
||||
*/
|
||||
Content toContent() {
|
||||
Content content = new ContentBuilder();
|
||||
// Position of last line separator.
|
||||
int lastLineSeparator = 0;
|
||||
|
||||
// Annotations
|
||||
Content annotationInfo = writer.getAnnotationInfo(element.getAnnotationMirrors(), true);
|
||||
if (!annotationInfo.isEmpty()) {
|
||||
content.add(HtmlTree.SPAN(HtmlStyle.annotations, annotationInfo));
|
||||
lastLineSeparator = content.charCount();
|
||||
}
|
||||
|
||||
// Modifiers
|
||||
appendModifiers(content);
|
||||
|
||||
// Type parameters
|
||||
if (typeParameters != null && !typeParameters.isEmpty()) {
|
||||
lastLineSeparator = appendTypeParameters(content, lastLineSeparator);
|
||||
}
|
||||
|
||||
// Return type
|
||||
if (returnType != null) {
|
||||
content.add(HtmlTree.SPAN(HtmlStyle.returnType, returnType));
|
||||
content.add(Entity.NO_BREAK_SPACE);
|
||||
}
|
||||
|
||||
// Name
|
||||
HtmlTree nameSpan = new HtmlTree(TagName.SPAN);
|
||||
nameSpan.setStyle(HtmlStyle.memberName);
|
||||
if (options.linkSource()) {
|
||||
Content name = new StringContent(name(element));
|
||||
writer.addSrcLink(element, name, nameSpan);
|
||||
} else {
|
||||
nameSpan.add(name(element));
|
||||
}
|
||||
content.add(nameSpan);
|
||||
|
||||
// Parameters and exceptions
|
||||
if (parameters != null) {
|
||||
appendParametersAndExceptions(content, lastLineSeparator);
|
||||
}
|
||||
|
||||
return HtmlTree.DIV(HtmlStyle.memberSignature, content);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the modifier for the member. The modifiers are ordered as specified
|
||||
* by <em>The Java Language Specification</em>.
|
||||
*
|
||||
* @param htmlTree the content tree to which the modifier information will be added
|
||||
*/
|
||||
private void appendModifiers(Content htmlTree) {
|
||||
Set<Modifier> set = new TreeSet<>(element.getModifiers());
|
||||
|
||||
// remove the ones we really don't need
|
||||
set.remove(NATIVE);
|
||||
set.remove(SYNCHRONIZED);
|
||||
set.remove(STRICTFP);
|
||||
|
||||
// According to JLS, we should not be showing public modifier for
|
||||
// interface methods and fields.
|
||||
if ((utils.isField(element) || utils.isMethod(element))) {
|
||||
Element te = element.getEnclosingElement();
|
||||
if (utils.isInterface(te) || utils.isAnnotationType(te)) {
|
||||
// Remove the implicit abstract and public modifiers
|
||||
if (utils.isMethod(element)) {
|
||||
set.remove(ABSTRACT);
|
||||
}
|
||||
set.remove(PUBLIC);
|
||||
}
|
||||
}
|
||||
if (!set.isEmpty()) {
|
||||
String mods = set.stream().map(Modifier::toString).collect(Collectors.joining(" "));
|
||||
htmlTree.add(HtmlTree.SPAN(HtmlStyle.modifiers, new StringContent(mods)))
|
||||
.add(Entity.NO_BREAK_SPACE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends the type parameter information to the HTML tree.
|
||||
*
|
||||
* @param htmlTree the HTML tree
|
||||
* @param lastLineSeparator index of last line separator in the HTML tree
|
||||
*
|
||||
* @return the new index of the last line separator
|
||||
*/
|
||||
private int appendTypeParameters(Content htmlTree, int lastLineSeparator) {
|
||||
// Apply different wrapping strategies for type parameters
|
||||
// depending of combined length of type parameters and return type.
|
||||
int typeParamLength = typeParameters.charCount();
|
||||
|
||||
if (typeParamLength >= TYPE_PARAMS_MAX_INLINE_LENGTH) {
|
||||
htmlTree.add(HtmlTree.SPAN(HtmlStyle.typeParametersLong, typeParameters));
|
||||
} else {
|
||||
htmlTree.add(HtmlTree.SPAN(HtmlStyle.typeParameters, typeParameters));
|
||||
}
|
||||
|
||||
int lineLength = htmlTree.charCount() - lastLineSeparator;
|
||||
int newLastLineSeparator = lastLineSeparator;
|
||||
|
||||
// sum below includes length of modifiers plus type params added above
|
||||
if (lineLength + returnType.charCount()> RETURN_TYPE_MAX_LINE_LENGTH) {
|
||||
htmlTree.add(DocletConstants.NL);
|
||||
newLastLineSeparator = htmlTree.charCount();
|
||||
} else {
|
||||
htmlTree.add(Entity.NO_BREAK_SPACE);
|
||||
}
|
||||
|
||||
return newLastLineSeparator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends the parameters and exceptions information to the HTML tree.
|
||||
*
|
||||
* @param htmlTree the HTML tree
|
||||
* @param lastLineSeparator the index of the last line separator in the HTML tree
|
||||
*/
|
||||
private void appendParametersAndExceptions(Content htmlTree, int lastLineSeparator) {
|
||||
// Record current position for indentation of exceptions
|
||||
int indentSize = htmlTree.charCount() - lastLineSeparator;
|
||||
|
||||
if (parameters.charCount() == 2) {
|
||||
// empty parameters are added without packing
|
||||
htmlTree.add(parameters);
|
||||
} else {
|
||||
htmlTree.add(Entity.ZERO_WIDTH_SPACE)
|
||||
.add(HtmlTree.SPAN(HtmlStyle.parameters, parameters));
|
||||
}
|
||||
|
||||
// Exceptions
|
||||
if (exceptions != null && !exceptions.isEmpty()) {
|
||||
CharSequence indent = " ".repeat(Math.max(0, indentSize + 1 - 7));
|
||||
htmlTree.add(DocletConstants.NL)
|
||||
.add(indent)
|
||||
.add("throws ")
|
||||
.add(HtmlTree.SPAN(HtmlStyle.exceptions, exceptions));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -114,8 +114,9 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
|
||||
|
||||
@Override
|
||||
public Content getSignature(Element member) {
|
||||
return new MemberSignature(member)
|
||||
.addType(getType(member))
|
||||
return new Signatures.MemberSignature(member, this)
|
||||
.setType(getType(member))
|
||||
.setAnnotations(writer.getAnnotationInfo(member, true))
|
||||
.toContent();
|
||||
}
|
||||
|
||||
|
@ -188,110 +188,12 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
|
||||
|
||||
@Override @SuppressWarnings("preview")
|
||||
public void addClassSignature(String modifiers, Content classInfoTree) {
|
||||
Content hr = new HtmlTree(TagName.HR);
|
||||
classInfoTree.add(hr);
|
||||
Content pre = new HtmlTree(TagName.PRE);
|
||||
addAnnotationInfo(typeElement, pre);
|
||||
pre.add(modifiers);
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.CLASS_SIGNATURE, typeElement);
|
||||
//Let's not link to ourselves in the signature.
|
||||
linkInfo.linkToSelf = false;
|
||||
Content className = new StringContent(utils.getSimpleName(typeElement));
|
||||
Content parameterLinks = getTypeParameterLinks(linkInfo);
|
||||
if (options.linkSource()) {
|
||||
addSrcLink(typeElement, className, pre);
|
||||
pre.add(parameterLinks);
|
||||
} else {
|
||||
Content span = HtmlTree.SPAN(HtmlStyle.typeNameLabel, className);
|
||||
span.add(parameterLinks);
|
||||
pre.add(span);
|
||||
}
|
||||
if (utils.isRecord(typeElement)) {
|
||||
pre.add(getRecordComponents(typeElement));
|
||||
}
|
||||
if (!utils.isAnnotationType(typeElement)) {
|
||||
if (!utils.isInterface(typeElement)) {
|
||||
TypeMirror superclass = utils.getFirstVisibleSuperClass(typeElement);
|
||||
if (superclass != null) {
|
||||
pre.add(DocletConstants.NL);
|
||||
pre.add("extends ");
|
||||
Content link = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.CLASS_SIGNATURE_PARENT_NAME,
|
||||
superclass));
|
||||
pre.add(link);
|
||||
}
|
||||
}
|
||||
List<? extends TypeMirror> interfaces = typeElement.getInterfaces();
|
||||
if (!interfaces.isEmpty()) {
|
||||
boolean isFirst = true;
|
||||
for (TypeMirror type : interfaces) {
|
||||
TypeElement tDoc = utils.asTypeElement(type);
|
||||
if (!(utils.isPublic(tDoc) || utils.isLinkable(tDoc))) {
|
||||
continue;
|
||||
}
|
||||
if (isFirst) {
|
||||
pre.add(DocletConstants.NL);
|
||||
pre.add(utils.isInterface(typeElement) ? "extends " : "implements ");
|
||||
isFirst = false;
|
||||
} else {
|
||||
pre.add(", ");
|
||||
}
|
||||
Content link = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.CLASS_SIGNATURE_PARENT_NAME,
|
||||
type));
|
||||
pre.add(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<? extends TypeMirror> permits = typeElement.getPermittedSubclasses();
|
||||
List<? extends TypeMirror> linkablePermits = permits.stream()
|
||||
.filter(t -> utils.isLinkable(utils.asTypeElement(t)))
|
||||
.collect(Collectors.toList());
|
||||
if (!linkablePermits.isEmpty()) {
|
||||
boolean isFirst = true;
|
||||
for (TypeMirror type : linkablePermits) {
|
||||
TypeElement tDoc = utils.asTypeElement(type);
|
||||
if (isFirst) {
|
||||
pre.add(DocletConstants.NL);
|
||||
pre.add("permits ");
|
||||
isFirst = false;
|
||||
} else {
|
||||
pre.add(", ");
|
||||
}
|
||||
Content link = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.PERMITTED_SUBCLASSES,
|
||||
type));
|
||||
pre.add(link);
|
||||
}
|
||||
if (linkablePermits.size() < permits.size()) {
|
||||
Content c = new StringContent(resources.getText("doclet.not.exhaustive"));
|
||||
pre.add(" ");
|
||||
pre.add(HtmlTree.SPAN(HtmlStyle.permitsNote, c));
|
||||
}
|
||||
}
|
||||
classInfoTree.add(pre);
|
||||
classInfoTree.add(new HtmlTree(TagName.HR));
|
||||
classInfoTree.add(new Signatures.TypeSignature(typeElement, this)
|
||||
.setModifiers(new StringContent(modifiers))
|
||||
.toContent());
|
||||
}
|
||||
|
||||
@SuppressWarnings("preview")
|
||||
private Content getRecordComponents(TypeElement typeElem) {
|
||||
Content content = new ContentBuilder();
|
||||
content.add("(");
|
||||
String sep = "";
|
||||
for (RecordComponentElement e : typeElement.getRecordComponents()) {
|
||||
content.add(sep);
|
||||
getAnnotations(e.getAnnotationMirrors(), false)
|
||||
.forEach(a -> { content.add(a); content.add(" "); });
|
||||
Content link = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.RECORD_COMPONENT,
|
||||
e.asType()));
|
||||
content.add(link);
|
||||
content.add(Entity.NO_BREAK_SPACE);
|
||||
content.add(e.getSimpleName());
|
||||
sep = ", ";
|
||||
}
|
||||
content.add(")");
|
||||
return content;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addClassDescription(Content classInfoTree) {
|
||||
|
@ -130,9 +130,10 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
|
||||
|
||||
@Override
|
||||
public Content getSignature(ExecutableElement constructor) {
|
||||
return new MemberSignature(constructor)
|
||||
.addParameters(getParameters(constructor, true))
|
||||
.addExceptions(getExceptions(constructor))
|
||||
return new Signatures.MemberSignature(constructor, this)
|
||||
.setParameters(getParameters(constructor, true))
|
||||
.setExceptions(getExceptions(constructor))
|
||||
.setAnnotations(writer.getAnnotationInfo(constructor, true))
|
||||
.toContent();
|
||||
}
|
||||
|
||||
|
@ -98,8 +98,9 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
|
||||
|
||||
@Override
|
||||
public Content getSignature(VariableElement enumConstant) {
|
||||
return new MemberSignature(enumConstant)
|
||||
.addType(enumConstant.asType())
|
||||
return new Signatures.MemberSignature(enumConstant, this)
|
||||
.setType(enumConstant.asType())
|
||||
.setAnnotations(writer.getAnnotationInfo(enumConstant, true))
|
||||
.toContent();
|
||||
}
|
||||
|
||||
|
@ -98,8 +98,9 @@ public class FieldWriterImpl extends AbstractMemberWriter
|
||||
|
||||
@Override
|
||||
public Content getSignature(VariableElement field) {
|
||||
return new MemberSignature(field)
|
||||
.addType(utils.asInstantiatedFieldType(typeElement, field))
|
||||
return new Signatures.MemberSignature(field, this)
|
||||
.setType(utils.asInstantiatedFieldType(typeElement, field))
|
||||
.setAnnotations(writer.getAnnotationInfo(field, true))
|
||||
.toContent();
|
||||
}
|
||||
|
||||
|
@ -1693,68 +1693,22 @@ public class HtmlDocletWriter {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the annotation types for the given packageElement.
|
||||
* Return a content tree containing the annotation types for the given element.
|
||||
*
|
||||
* @param packageElement the package to write annotations for.
|
||||
* @param htmltree the documentation tree to which the annotation info will be
|
||||
* added
|
||||
* @param element an Element
|
||||
* @param lineBreak if true add new line between each member value
|
||||
* @return the documentation tree containing the annotation info
|
||||
*/
|
||||
public void addAnnotationInfo(PackageElement packageElement, Content htmltree) {
|
||||
addAnnotationInfo(packageElement.getAnnotationMirrors(), htmltree);
|
||||
}
|
||||
|
||||
/*
|
||||
* this is a hack to delay dealing with Annotations in the writers, the assumption
|
||||
* is that all necessary checks have been made to get here.
|
||||
*/
|
||||
public void addReceiverAnnotationInfo(ExecutableElement method, TypeMirror rcvrTypeMirror,
|
||||
List<? extends AnnotationMirror> annotationMirrors, Content htmltree) {
|
||||
TypeMirror rcvrType = method.getReceiverType();
|
||||
List<? extends AnnotationMirror> annotationMirrors1 = rcvrType.getAnnotationMirrors();
|
||||
htmltree.add(getAnnotationInfo(annotationMirrors1, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the annotation types for the given element.
|
||||
*
|
||||
* @param element the package to write annotations for
|
||||
* @param htmltree the content tree to which the annotation types will be added
|
||||
*/
|
||||
public void addAnnotationInfo(Element element, Content htmltree) {
|
||||
addAnnotationInfo(element.getAnnotationMirrors(), htmltree);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the annotation types for the given element and parameter.
|
||||
*
|
||||
* @param param the parameter to write annotations for.
|
||||
* @param tree the content tree to which the annotation types will be added
|
||||
*/
|
||||
public boolean addAnnotationInfo(VariableElement param, Content tree) {
|
||||
Content annotationInfo = getAnnotationInfo(param.getAnnotationMirrors(), false);
|
||||
if (annotationInfo.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
tree.add(annotationInfo);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the annotation types for the given Element.
|
||||
*
|
||||
* @param descList a list of annotation mirrors.
|
||||
* @param htmltree the documentation tree to which the annotation info will be
|
||||
* added
|
||||
*/
|
||||
private void addAnnotationInfo(List<? extends AnnotationMirror> descList, Content htmltree) {
|
||||
htmltree.add(getAnnotationInfo(descList, true));
|
||||
Content getAnnotationInfo(Element element, boolean lineBreak) {
|
||||
return getAnnotationInfo(element.getAnnotationMirrors(), lineBreak);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a content tree containing the annotation types for the given element.
|
||||
*
|
||||
* @param descList a list of annotation mirrors.
|
||||
* @return the documentation tree containing the annotation info.
|
||||
* @param descList a list of annotation mirrors
|
||||
* @param lineBreak if true add new line between each member value
|
||||
* @return the documentation tree containing the annotation info
|
||||
*/
|
||||
Content getAnnotationInfo(List<? extends AnnotationMirror> descList, boolean lineBreak) {
|
||||
List<Content> annotations = getAnnotations(descList, lineBreak);
|
||||
@ -1775,11 +1729,11 @@ public class HtmlDocletWriter {
|
||||
* the given doc.
|
||||
*
|
||||
* @param descList a list of annotation mirrors.
|
||||
* @param linkBreak if true, add new line between each member value.
|
||||
* @param lineBreak if true, add new line between each member value.
|
||||
* @return a list of strings representing the annotations being
|
||||
* documented.
|
||||
*/
|
||||
public List<Content> getAnnotations(List<? extends AnnotationMirror> descList, boolean linkBreak) {
|
||||
public List<Content> getAnnotations(List<? extends AnnotationMirror> descList, boolean lineBreak) {
|
||||
List<Content> results = new ArrayList<>();
|
||||
ContentBuilder annotation;
|
||||
for (AnnotationMirror aDesc : descList) {
|
||||
@ -1854,9 +1808,9 @@ public class HtmlDocletWriter {
|
||||
}
|
||||
}
|
||||
else {
|
||||
addAnnotations(annotationElement, linkInfo, annotation, pairs, linkBreak);
|
||||
addAnnotations(annotationElement, linkInfo, annotation, pairs, lineBreak);
|
||||
}
|
||||
annotation.add(linkBreak ? DocletConstants.NL : "");
|
||||
annotation.add(lineBreak ? DocletConstants.NL : "");
|
||||
results.add(annotation);
|
||||
}
|
||||
return results;
|
||||
|
@ -206,19 +206,11 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
if (annotations.isEmpty())
|
||||
return links;
|
||||
|
||||
List<Content> annos = m_writer.getAnnotations(annotations, false);
|
||||
|
||||
boolean isFirst = true;
|
||||
for (Content anno : annos) {
|
||||
if (!isFirst) {
|
||||
links.add(" ");
|
||||
}
|
||||
links.add(anno);
|
||||
isFirst = false;
|
||||
}
|
||||
if (!annos.isEmpty()) {
|
||||
links.add(" ");
|
||||
}
|
||||
m_writer.getAnnotations(annotations, false)
|
||||
.forEach(a -> {
|
||||
links.add(a);
|
||||
links.add(" ");
|
||||
});
|
||||
|
||||
return links;
|
||||
}
|
||||
|
@ -122,11 +122,12 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
|
||||
*/
|
||||
@Override
|
||||
public Content getSignature(ExecutableElement method) {
|
||||
return new MemberSignature(method)
|
||||
.addTypeParameters(getTypeParameters(method))
|
||||
.addReturnType(getReturnType(method))
|
||||
.addParameters(getParameters(method, true))
|
||||
.addExceptions(getExceptions(method))
|
||||
return new Signatures.MemberSignature(method, this)
|
||||
.setTypeParameters(getTypeParameters(method))
|
||||
.setReturnType(getReturnType(method))
|
||||
.setParameters(getParameters(method, true))
|
||||
.setExceptions(getExceptions(method))
|
||||
.setAnnotations(writer.getAnnotationInfo(method, true))
|
||||
.toContent();
|
||||
}
|
||||
|
||||
|
@ -185,9 +185,6 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(mdle.getQualifiedName().toString()));
|
||||
HtmlTree div = new HtmlTree(TagName.DIV);
|
||||
div.setStyle(HtmlStyle.header);
|
||||
Content annotationContent = new HtmlTree(TagName.P);
|
||||
addAnnotationInfo(mdle, annotationContent);
|
||||
div.add(annotationContent);
|
||||
Content label = mdle.isOpen() && (configuration.docEnv.getModuleMode() == ModuleMode.ALL)
|
||||
? contents.openModuleLabel : contents.moduleLabel;
|
||||
Content tHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
|
||||
@ -831,6 +828,12 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addModuleSignature(Content moduleContentTree) {
|
||||
moduleContentTree.add(new HtmlTree(TagName.HR));
|
||||
moduleContentTree.add(Signatures.getModuleSignature(mdle, this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addModuleContent(Content moduleContentTree) {
|
||||
bodyContents.addMainContent(moduleContentTree);
|
||||
|
@ -109,9 +109,6 @@ public class PackageWriterImpl extends HtmlDocletWriter
|
||||
new StringContent(mdle.getQualifiedName().toString())));
|
||||
div.add(moduleNameDiv);
|
||||
}
|
||||
Content annotationContent = new HtmlTree(TagName.P);
|
||||
addAnnotationInfo(packageElement, annotationContent);
|
||||
div.add(annotationContent);
|
||||
Content tHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
|
||||
HtmlStyle.title, contents.packageLabel);
|
||||
tHeading.add(Entity.NO_BREAK_SPACE);
|
||||
@ -253,6 +250,12 @@ public class PackageWriterImpl extends HtmlDocletWriter
|
||||
packageContentTree.add(sectionTree);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPackageSignature(Content packageContentTree) {
|
||||
packageContentTree.add(new HtmlTree(TagName.HR));
|
||||
packageContentTree.add(Signatures.getPackageSignature(packageElement, this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPackageContent(Content packageContentTree) {
|
||||
bodyContents.addMainContent(packageContentTree);
|
||||
|
@ -91,8 +91,9 @@ public class PropertyWriterImpl extends AbstractMemberWriter
|
||||
|
||||
@Override
|
||||
public Content getSignature(ExecutableElement property) {
|
||||
return new MemberSignature(property)
|
||||
.addType(utils.getReturnType(typeElement, property))
|
||||
return new Signatures.MemberSignature(property, this)
|
||||
.setType(utils.getReturnType(typeElement, property))
|
||||
.setAnnotations(writer.getAnnotationInfo(property, true))
|
||||
.toContent();
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,441 @@
|
||||
package jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import jdk.javadoc.doclet.DocletEnvironment;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.TagName;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocletConstants;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.Utils;
|
||||
|
||||
import javax.lang.model.element.Element;
|
||||
import javax.lang.model.element.Modifier;
|
||||
import javax.lang.model.element.ModuleElement;
|
||||
import javax.lang.model.element.PackageElement;
|
||||
import javax.lang.model.element.RecordComponentElement;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
import javax.lang.model.type.TypeMirror;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static javax.lang.model.element.Modifier.ABSTRACT;
|
||||
import static javax.lang.model.element.Modifier.NATIVE;
|
||||
import static javax.lang.model.element.Modifier.PUBLIC;
|
||||
import static javax.lang.model.element.Modifier.STRICTFP;
|
||||
import static javax.lang.model.element.Modifier.SYNCHRONIZED;
|
||||
|
||||
public class Signatures {
|
||||
|
||||
public static Content getModuleSignature(ModuleElement mdle, ModuleWriterImpl moduleWriter) {
|
||||
Content signature = HtmlTree.DIV(HtmlStyle.moduleSignature);
|
||||
Content annotations = moduleWriter.getAnnotationInfo(mdle, true);
|
||||
if (!annotations.isEmpty()) {
|
||||
signature.add(HtmlTree.SPAN(HtmlStyle.annotations, annotations));
|
||||
}
|
||||
DocletEnvironment docEnv = moduleWriter.configuration.docEnv;
|
||||
String label = mdle.isOpen() && (docEnv.getModuleMode() == DocletEnvironment.ModuleMode.ALL)
|
||||
? "open module" : "module";
|
||||
signature.add(label);
|
||||
signature.add(" ");
|
||||
HtmlTree nameSpan = new HtmlTree(TagName.SPAN).setStyle(HtmlStyle.elementName);
|
||||
nameSpan.add(mdle.getQualifiedName().toString());
|
||||
signature.add(nameSpan);
|
||||
return signature;
|
||||
}
|
||||
|
||||
public static Content getPackageSignature(PackageElement pkg, PackageWriterImpl pkgWriter) {
|
||||
Content signature = HtmlTree.DIV(HtmlStyle.packageSignature);
|
||||
Content annotations = pkgWriter.getAnnotationInfo(pkg, true);
|
||||
if (!annotations.isEmpty()) {
|
||||
signature.add(HtmlTree.SPAN(HtmlStyle.annotations, annotations));
|
||||
}
|
||||
signature.add("package ");
|
||||
HtmlTree nameSpan = new HtmlTree(TagName.SPAN).setStyle(HtmlStyle.elementName);
|
||||
nameSpan.add(pkg.getQualifiedName().toString());
|
||||
signature.add(nameSpan);
|
||||
return signature;
|
||||
}
|
||||
|
||||
static class TypeSignature {
|
||||
|
||||
private final TypeElement typeElement;
|
||||
private final ClassWriterImpl classWriter;
|
||||
private final Utils utils;
|
||||
private final HtmlConfiguration configuration;
|
||||
private Content modifiers;
|
||||
|
||||
TypeSignature(TypeElement typeElement, ClassWriterImpl classWriter) {
|
||||
this.typeElement = typeElement;
|
||||
this.classWriter = classWriter;
|
||||
this.utils = classWriter.utils;
|
||||
this.configuration = classWriter.configuration;
|
||||
}
|
||||
|
||||
public TypeSignature setModifiers(Content modifiers) {
|
||||
this.modifiers = modifiers;
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("preview")
|
||||
public Content toContent() {
|
||||
Content content = new ContentBuilder();
|
||||
Content annotationInfo = classWriter.getAnnotationInfo(typeElement, true);
|
||||
if (!annotationInfo.isEmpty()) {
|
||||
content.add(HtmlTree.SPAN(HtmlStyle.annotations, annotationInfo));
|
||||
}
|
||||
content.add(HtmlTree.SPAN(HtmlStyle.modifiers, modifiers));
|
||||
|
||||
HtmlTree nameSpan = new HtmlTree(TagName.SPAN).setStyle(HtmlStyle.elementName);
|
||||
Content className = new StringContent(utils.getSimpleName(typeElement));
|
||||
if (classWriter.options.linkSource()) {
|
||||
classWriter.addSrcLink(typeElement, className, nameSpan);
|
||||
} else {
|
||||
nameSpan.addStyle(HtmlStyle.typeNameLabel).add(className);
|
||||
}
|
||||
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.CLASS_SIGNATURE, typeElement);
|
||||
//Let's not link to ourselves in the signature.
|
||||
linkInfo.linkToSelf = false;
|
||||
nameSpan.add(classWriter.getTypeParameterLinks(linkInfo));
|
||||
content.add(nameSpan);
|
||||
|
||||
if (utils.isRecord(typeElement)) {
|
||||
content.add(getRecordComponents());
|
||||
}
|
||||
if (!utils.isAnnotationType(typeElement)) {
|
||||
Content extendsImplements = new HtmlTree(TagName.SPAN)
|
||||
.setStyle(HtmlStyle.extendsImplements);
|
||||
if (!utils.isInterface(typeElement)) {
|
||||
TypeMirror superclass = utils.getFirstVisibleSuperClass(typeElement);
|
||||
if (superclass != null) {
|
||||
content.add(DocletConstants.NL);
|
||||
extendsImplements.add("extends ");
|
||||
Content link = classWriter.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.CLASS_SIGNATURE_PARENT_NAME,
|
||||
superclass));
|
||||
extendsImplements.add(link);
|
||||
}
|
||||
}
|
||||
List<? extends TypeMirror> interfaces = typeElement.getInterfaces();
|
||||
if (!interfaces.isEmpty()) {
|
||||
boolean isFirst = true;
|
||||
for (TypeMirror type : interfaces) {
|
||||
TypeElement tDoc = utils.asTypeElement(type);
|
||||
if (!(utils.isPublic(tDoc) || utils.isLinkable(tDoc))) {
|
||||
continue;
|
||||
}
|
||||
if (isFirst) {
|
||||
extendsImplements.add(DocletConstants.NL);
|
||||
extendsImplements.add(utils.isInterface(typeElement) ? "extends " : "implements ");
|
||||
isFirst = false;
|
||||
} else {
|
||||
extendsImplements.add(", ");
|
||||
}
|
||||
Content link = classWriter.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.CLASS_SIGNATURE_PARENT_NAME,
|
||||
type));
|
||||
extendsImplements.add(link);
|
||||
}
|
||||
}
|
||||
if (!extendsImplements.isEmpty()) {
|
||||
content.add(extendsImplements);
|
||||
}
|
||||
}
|
||||
List<? extends TypeMirror> permits = typeElement.getPermittedSubclasses();
|
||||
List<? extends TypeMirror> linkablePermits = permits.stream()
|
||||
.filter(t -> utils.isLinkable(utils.asTypeElement(t)))
|
||||
.collect(Collectors.toList());
|
||||
if (!linkablePermits.isEmpty()) {
|
||||
Content permitsSpan = new HtmlTree(TagName.SPAN).setStyle(HtmlStyle.permits);
|
||||
boolean isFirst = true;
|
||||
for (TypeMirror type : linkablePermits) {
|
||||
if (isFirst) {
|
||||
content.add(DocletConstants.NL);
|
||||
permitsSpan.add("permits ");
|
||||
isFirst = false;
|
||||
} else {
|
||||
permitsSpan.add(", ");
|
||||
}
|
||||
Content link = classWriter.getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.PERMITTED_SUBCLASSES,
|
||||
type));
|
||||
permitsSpan.add(link);
|
||||
}
|
||||
if (linkablePermits.size() < permits.size()) {
|
||||
Content c = new StringContent(classWriter.resources.getText("doclet.not.exhaustive"));
|
||||
permitsSpan.add(" ");
|
||||
permitsSpan.add(HtmlTree.SPAN(HtmlStyle.permitsNote, c));
|
||||
}
|
||||
content.add(permitsSpan);
|
||||
}
|
||||
return HtmlTree.DIV(HtmlStyle.typeSignature, content);
|
||||
}
|
||||
|
||||
@SuppressWarnings("preview")
|
||||
private Content getRecordComponents() {
|
||||
Content content = new ContentBuilder();
|
||||
content.add("(");
|
||||
String sep = "";
|
||||
for (RecordComponentElement e : typeElement.getRecordComponents()) {
|
||||
content.add(sep);
|
||||
classWriter.getAnnotations(e.getAnnotationMirrors(), false)
|
||||
.forEach(a -> { content.add(a).add(" "); });
|
||||
Content link = classWriter.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.RECORD_COMPONENT,
|
||||
e.asType()));
|
||||
content.add(link);
|
||||
content.add(Entity.NO_BREAK_SPACE);
|
||||
content.add(e.getSimpleName());
|
||||
sep = ", ";
|
||||
}
|
||||
content.add(")");
|
||||
return content;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A content builder for member signatures.
|
||||
*/
|
||||
static class MemberSignature {
|
||||
|
||||
private final AbstractMemberWriter memberWriter;
|
||||
private final Utils utils;
|
||||
|
||||
private final Element element;
|
||||
private Content annotations;
|
||||
private Content typeParameters;
|
||||
private Content returnType;
|
||||
private Content parameters;
|
||||
private Content exceptions;
|
||||
|
||||
// Threshold for length of type parameters before switching from inline to block representation.
|
||||
private static final int TYPE_PARAMS_MAX_INLINE_LENGTH = 50;
|
||||
|
||||
// Threshold for combined length of modifiers, type params and return type before breaking
|
||||
// it up with a line break before the return type.
|
||||
private static final int RETURN_TYPE_MAX_LINE_LENGTH = 50;
|
||||
|
||||
/**
|
||||
* Creates a new member signature builder.
|
||||
*
|
||||
* @param element the element for which to create a signature
|
||||
* @param memberWriter the member writer
|
||||
*/
|
||||
MemberSignature(Element element, AbstractMemberWriter memberWriter) {
|
||||
this.element = element;
|
||||
this.memberWriter = memberWriter;
|
||||
this.utils = memberWriter.utils;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the type parameters for an executable member.
|
||||
*
|
||||
* @param typeParameters the content tree containing the type parameters to add.
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature setTypeParameters(Content typeParameters) {
|
||||
this.typeParameters = typeParameters;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the return type for an executable member.
|
||||
*
|
||||
* @param returnType the content tree containing the return type to add.
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature setReturnType(Content returnType) {
|
||||
this.returnType = returnType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the type information for a non-executable member.
|
||||
*
|
||||
* @param type the type of the member.
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature setType(TypeMirror type) {
|
||||
this.returnType = memberWriter.writer.getLink(new LinkInfoImpl(memberWriter.configuration, LinkInfoImpl.Kind.MEMBER, type));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the parameter information of an executable member.
|
||||
*
|
||||
* @param paramTree the content tree containing the parameter information.
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature setParameters(Content paramTree) {
|
||||
this.parameters = paramTree;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the exception information of an executable member.
|
||||
*
|
||||
* @param exceptionTree the content tree containing the exception information
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature setExceptions(Content exceptionTree) {
|
||||
this.exceptions = exceptionTree;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the annotation information of a member.
|
||||
*
|
||||
* @param annotationTree the content tree containing the exception information
|
||||
* @return this instance
|
||||
*/
|
||||
MemberSignature setAnnotations(Content annotationTree) {
|
||||
this.annotations = annotationTree;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an HTML tree containing the member signature.
|
||||
*
|
||||
* @return an HTML tree containing the member signature
|
||||
*/
|
||||
Content toContent() {
|
||||
Content content = new ContentBuilder();
|
||||
// Position of last line separator.
|
||||
int lastLineSeparator = 0;
|
||||
|
||||
// Annotations
|
||||
if (annotations != null && !annotations.isEmpty()) {
|
||||
content.add(HtmlTree.SPAN(HtmlStyle.annotations, annotations));
|
||||
lastLineSeparator = content.charCount();
|
||||
}
|
||||
|
||||
// Modifiers
|
||||
appendModifiers(content);
|
||||
|
||||
// Type parameters
|
||||
if (typeParameters != null && !typeParameters.isEmpty()) {
|
||||
lastLineSeparator = appendTypeParameters(content, lastLineSeparator);
|
||||
}
|
||||
|
||||
// Return type
|
||||
if (returnType != null) {
|
||||
content.add(HtmlTree.SPAN(HtmlStyle.returnType, returnType));
|
||||
content.add(Entity.NO_BREAK_SPACE);
|
||||
}
|
||||
|
||||
// Name
|
||||
HtmlTree nameSpan = new HtmlTree(TagName.SPAN).setStyle(HtmlStyle.elementName);
|
||||
if (memberWriter.options.linkSource()) {
|
||||
Content name = new StringContent(memberWriter.name(element));
|
||||
memberWriter.writer.addSrcLink(element, name, nameSpan);
|
||||
} else {
|
||||
nameSpan.add(memberWriter.name(element));
|
||||
}
|
||||
content.add(nameSpan);
|
||||
|
||||
// Parameters and exceptions
|
||||
if (parameters != null) {
|
||||
appendParametersAndExceptions(content, lastLineSeparator);
|
||||
}
|
||||
|
||||
return HtmlTree.DIV(HtmlStyle.memberSignature, content);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the modifier for the member. The modifiers are ordered as specified
|
||||
* by <em>The Java Language Specification</em>.
|
||||
*
|
||||
* @param htmlTree the content tree to which the modifier information will be added
|
||||
*/
|
||||
private void appendModifiers(Content htmlTree) {
|
||||
Set<Modifier> set = new TreeSet<>(element.getModifiers());
|
||||
|
||||
// remove the ones we really don't need
|
||||
set.remove(NATIVE);
|
||||
set.remove(SYNCHRONIZED);
|
||||
set.remove(STRICTFP);
|
||||
|
||||
// According to JLS, we should not be showing public modifier for
|
||||
// interface methods and fields.
|
||||
if ((utils.isField(element) || utils.isMethod(element))) {
|
||||
Element te = element.getEnclosingElement();
|
||||
if (utils.isInterface(te) || utils.isAnnotationType(te)) {
|
||||
// Remove the implicit abstract and public modifiers
|
||||
if (utils.isMethod(element)) {
|
||||
set.remove(ABSTRACT);
|
||||
}
|
||||
set.remove(PUBLIC);
|
||||
}
|
||||
}
|
||||
if (!set.isEmpty()) {
|
||||
String mods = set.stream().map(Modifier::toString).collect(Collectors.joining(" "));
|
||||
htmlTree.add(HtmlTree.SPAN(HtmlStyle.modifiers, new StringContent(mods)))
|
||||
.add(Entity.NO_BREAK_SPACE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends the type parameter information to the HTML tree.
|
||||
*
|
||||
* @param htmlTree the HTML tree
|
||||
* @param lastLineSeparator index of last line separator in the HTML tree
|
||||
* @return the new index of the last line separator
|
||||
*/
|
||||
private int appendTypeParameters(Content htmlTree, int lastLineSeparator) {
|
||||
// Apply different wrapping strategies for type parameters
|
||||
// depending of combined length of type parameters and return type.
|
||||
int typeParamLength = typeParameters.charCount();
|
||||
|
||||
if (typeParamLength >= TYPE_PARAMS_MAX_INLINE_LENGTH) {
|
||||
htmlTree.add(HtmlTree.SPAN(HtmlStyle.typeParametersLong, typeParameters));
|
||||
} else {
|
||||
htmlTree.add(HtmlTree.SPAN(HtmlStyle.typeParameters, typeParameters));
|
||||
}
|
||||
|
||||
int lineLength = htmlTree.charCount() - lastLineSeparator;
|
||||
int newLastLineSeparator = lastLineSeparator;
|
||||
|
||||
// sum below includes length of modifiers plus type params added above
|
||||
if (lineLength + returnType.charCount() > RETURN_TYPE_MAX_LINE_LENGTH) {
|
||||
htmlTree.add(DocletConstants.NL);
|
||||
newLastLineSeparator = htmlTree.charCount();
|
||||
} else {
|
||||
htmlTree.add(Entity.NO_BREAK_SPACE);
|
||||
}
|
||||
|
||||
return newLastLineSeparator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends the parameters and exceptions information to the HTML tree.
|
||||
*
|
||||
* @param htmlTree the HTML tree
|
||||
* @param lastLineSeparator the index of the last line separator in the HTML tree
|
||||
*/
|
||||
private void appendParametersAndExceptions(Content htmlTree, int lastLineSeparator) {
|
||||
// Record current position for indentation of exceptions
|
||||
int indentSize = htmlTree.charCount() - lastLineSeparator;
|
||||
|
||||
if (parameters.charCount() == 2) {
|
||||
// empty parameters are added without packing
|
||||
htmlTree.add(parameters);
|
||||
} else {
|
||||
htmlTree.add(Entity.ZERO_WIDTH_SPACE)
|
||||
.add(HtmlTree.SPAN(HtmlStyle.parameters, parameters));
|
||||
}
|
||||
|
||||
// Exceptions
|
||||
if (exceptions != null && !exceptions.isEmpty()) {
|
||||
CharSequence indent = " ".repeat(Math.max(0, indentSize + 1 - 7));
|
||||
htmlTree.add(DocletConstants.NL)
|
||||
.add(indent)
|
||||
.add("throws ")
|
||||
.add(HtmlTree.SPAN(HtmlStyle.exceptions, exceptions));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -521,56 +521,82 @@ public enum HtmlStyle {
|
||||
flexContent,
|
||||
//</editor-fold>
|
||||
|
||||
//<editor-fold desc="member signature">
|
||||
//<editor-fold desc="signatures">
|
||||
//
|
||||
// The following constants are used for the components of a signature of an element
|
||||
|
||||
/**
|
||||
* The class of a {@code span} element for the signature of an element.
|
||||
* The class of an element containing a module signature.
|
||||
*/
|
||||
moduleSignature,
|
||||
|
||||
/**
|
||||
* The class of an element containing a package signature.
|
||||
*/
|
||||
packageSignature,
|
||||
|
||||
/**
|
||||
* The class of an element containing a type signature.
|
||||
*/
|
||||
typeSignature,
|
||||
|
||||
/**
|
||||
* The class of an element containing a member signature.
|
||||
* The signature will contain a member name and, depending on the kind of element,
|
||||
* it can contain any of the following:
|
||||
* any of the following:
|
||||
* annotations, type parameters, modifiers, return type, parameters, and exceptions.
|
||||
*/
|
||||
memberSignature,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} element for any annotations in the signature of an element.
|
||||
* The class of a {@code span} element containing any annotations in the signature of an element.
|
||||
*/
|
||||
annotations,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} element for any exceptions in a signature of an executable element.
|
||||
* The class of a {@code span} element containing any exceptions in a signature of an executable element.
|
||||
*/
|
||||
exceptions,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} for the member name in the signature of an element.
|
||||
* The class of a {@code span} element containing the {@code extends} or {@code implements} section
|
||||
* in a signature of a type element.
|
||||
*/
|
||||
memberName,
|
||||
extendsImplements,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} for any modifiers in the signature of an element.
|
||||
* The class of a {@code span} containing the element name in the element's signature.
|
||||
*/
|
||||
elementName,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} containing any modifiers in the signature of an element.
|
||||
*/
|
||||
modifiers,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} for any parameters in the signature of an executable element.
|
||||
* The class of a {@code span} containing any parameters in the signature of an executable element.
|
||||
*/
|
||||
parameters,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} for the return type in the signature of an method element.
|
||||
* The class of a {@code span} containing the {@code permits} section of a sealed class element.
|
||||
*/
|
||||
permits,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} containing the return type in the signature of a method element.
|
||||
*/
|
||||
returnType,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} for type parameters in the signature of an element,
|
||||
* The class of a {@code span} containing type parameters in the signature of an element,
|
||||
* used when the type parameters should reasonably be displayed inline.
|
||||
*/
|
||||
typeParameters,
|
||||
|
||||
/**
|
||||
* The class of a {@code span} for type parameters in the signature of an element,
|
||||
* The class of a {@code span} containing type parameters in the signature of an element,
|
||||
* used when the type parameters are too long to be displayed inline.
|
||||
* @implNote
|
||||
* The threshold for choosing between {@code typeParameters} and {@code typeParametersLong}
|
||||
|
@ -76,6 +76,14 @@ public interface ModuleSummaryWriter {
|
||||
*/
|
||||
void addModuleDescription(Content moduleContentTree);
|
||||
|
||||
/**
|
||||
* Adds the module signature.
|
||||
*
|
||||
* @param moduleContentTree the content tree to which the module signature
|
||||
* will be added
|
||||
*/
|
||||
void addModuleSignature(Content moduleContentTree);
|
||||
|
||||
/**
|
||||
* Adds the summary of modules to the list of summaries.
|
||||
*
|
||||
|
@ -138,6 +138,14 @@ public interface PackageSummaryWriter {
|
||||
*/
|
||||
void addPackageTags(Content packageContentTree);
|
||||
|
||||
/**
|
||||
* Adds the package signature.
|
||||
*
|
||||
* @param packageContentTree the content tree to which the package signature
|
||||
* will be added
|
||||
*/
|
||||
void addPackageSignature(Content packageContentTree);
|
||||
|
||||
/**
|
||||
* Adds the tag information from the "packages.html" or "package-info.java" file to the
|
||||
* documentation tree.
|
||||
|
@ -121,6 +121,7 @@ public class ModuleSummaryBuilder extends AbstractBuilder {
|
||||
protected void buildContent() throws DocletException {
|
||||
Content moduleContentTree = moduleWriter.getContentHeader();
|
||||
|
||||
moduleWriter.addModuleSignature(moduleContentTree);
|
||||
buildModuleDescription(moduleContentTree);
|
||||
buildSummary(moduleContentTree);
|
||||
|
||||
|
@ -128,6 +128,7 @@ public class PackageSummaryBuilder extends AbstractBuilder {
|
||||
protected void buildContent() throws DocletException {
|
||||
Content packageContentTree = packageWriter.getContentHeader();
|
||||
|
||||
packageWriter.addPackageSignature(packageContentTree);
|
||||
buildPackageDescription(packageContentTree);
|
||||
buildPackageTags(packageContentTree);
|
||||
buildSummary(packageContentTree);
|
||||
|
@ -477,9 +477,6 @@ div.table-tabs > button.table-tab {
|
||||
/*
|
||||
* Styles for contents.
|
||||
*/
|
||||
.description pre {
|
||||
margin-top:0;
|
||||
}
|
||||
.deprecated-content {
|
||||
margin:0;
|
||||
padding:10px 0;
|
||||
@ -494,23 +491,28 @@ div.block {
|
||||
.col-last a {
|
||||
padding-bottom:3px;
|
||||
}
|
||||
div.member-signature {
|
||||
.module-signature,
|
||||
.package-signature,
|
||||
.type-signature,
|
||||
.member-signature {
|
||||
font-family:'DejaVu Sans Mono', monospace;
|
||||
font-size:14px;
|
||||
margin:14px 0;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
div.member-signature span.annotations {
|
||||
white-space: pre-wrap;
|
||||
.module-signature,
|
||||
.package-signature,
|
||||
.type-signature {
|
||||
margin-top: 0;
|
||||
}
|
||||
div.member-signature span.type-parameters-long,
|
||||
div.member-signature span.parameters,
|
||||
div.member-signature span.exceptions {
|
||||
.member-signature .type-parameters-long,
|
||||
.member-signature .parameters,
|
||||
.member-signature .exceptions {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
white-space: pre;
|
||||
}
|
||||
div.member-signature span.type-parameters {
|
||||
.member-signature .type-parameters {
|
||||
white-space: normal;
|
||||
}
|
||||
/*
|
||||
|
@ -67,8 +67,7 @@ public class TestAnnotationTypes extends JavadocTester {
|
||||
<section class="detail" id="DEFAULT_NAME">
|
||||
<h3>DEFAULT_NAME</h3>
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">java.lang.String</span> <span class="member-name">\
|
||||
DEFAULT_NAME</span></div>
|
||||
span class="return-type">java.lang.String</span> <span class="element-name">DEFAULT_NAME</span></div>
|
||||
""");
|
||||
|
||||
checkOutput("pkg/AnnotationType.html", true,
|
||||
@ -94,7 +93,7 @@ public class TestAnnotationTypes extends JavadocTester {
|
||||
<section class="detail" id="value()">""",
|
||||
"<h3>value</h3>\n",
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">int</span> <span class="member-name">value</span></div>""");
|
||||
<div class="member-signature"><span class="return-type">int</span> <span class="element-name">value</span></div>""");
|
||||
|
||||
checkOutput("pkg/AnnotationType.html", false,
|
||||
"""
|
||||
@ -124,10 +123,10 @@ public class TestAnnotationTypes extends JavadocTester {
|
||||
|
||||
checkOutput("pkg/AnnotationType.html", true,
|
||||
"""
|
||||
public @interface <a href="../src-html/pkg/AnnotationType.html#line.31">AnnotationType</a></pre>""");
|
||||
<span class="modifiers">public @interface </span><span class="element-name"><a href="../src-html/pkg/AnnotationType.html#line.31">AnnotationType</a></span></div>""");
|
||||
|
||||
checkOutput("pkg/AnnotationTypeField.html", true,
|
||||
"""
|
||||
public @interface <a href="../src-html/pkg/AnnotationTypeField.html#line.31">AnnotationTypeField</a></pre>""");
|
||||
<span class="modifiers">public @interface </span><span class="element-name"><a href="../src-html/pkg/AnnotationTypeField.html#line.31">AnnotationTypeField</a></span></div>""");
|
||||
}
|
||||
}
|
||||
|
@ -80,32 +80,33 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
|
||||
checkOutput("pkg/DeprecatedClassByAnnotation.html", true,
|
||||
"""
|
||||
<pre>@Deprecated
|
||||
public class <span class="type-name-label">DeprecatedClassByAnnotation</span>
|
||||
extends java.lang.Object</pre>""",
|
||||
<div class="type-signature"><span class="annotations">@Deprecated
|
||||
</span><span class="modifiers">public class </span><span class="element-name type-name-label">DeprecatedClassByAnnotation</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public</span> <span class="return-type">int<\
|
||||
/span> <span class="member-name">field</span></div>
|
||||
/span> <span class="element-name">field</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public</span> <span class="member-name">DeprecatedClassByAnnotation</span>()</div>
|
||||
</span><span class="modifiers">public</span> <span class="element-name">DeprecatedClassByAnnotation</span>()</div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Deprecated
|
||||
</span><span class="modifiers">public</span> <span class="return-type">void\
|
||||
</span> <span class="member-name">method</span>()</div>
|
||||
</span> <span class="element-name">method</span>()</div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>""");
|
||||
|
||||
checkOutput("pkg/TestAnnotationType.html", true,
|
||||
"""
|
||||
<hr>
|
||||
<pre>@Deprecated(forRemoval=true)
|
||||
<div class="type-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
@Documented
|
||||
public @interface <span class="type-name-label">TestAnnotationType</span></pre>
|
||||
</span><span class="modifiers">public @interface </span><span class="element-name type-n\
|
||||
ame-label">TestAnnotationType</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">annotation_test1 passes.</div>
|
||||
@ -113,21 +114,21 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">static final</span> <span class="return-type\
|
||||
">int</span> <span class="member-name">field</span></div>
|
||||
">int</span> <span class="element-name">field</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">annotation_test4 passes.</div>
|
||||
</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="return-type">int</span> <span class="member-name">required</span></div>
|
||||
</span><span class="return-type">int</span> <span class="element-name">required</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">annotation_test3 passes.</div>
|
||||
</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">java.lang.String</span>&\
|
||||
nbsp;<span class="member-name">optional</span></div>
|
||||
nbsp;<span class="element-name">optional</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
|
||||
<div class="deprecation-comment">annotation_test2 passes.</div>
|
||||
</div>""");
|
||||
@ -135,16 +136,16 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
checkOutput("pkg/TestClass.html", true,
|
||||
"""
|
||||
<hr>
|
||||
<pre>@Deprecated(forRemoval=true)
|
||||
public class <span class="type-name-label">TestClass</span>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public class </span><span class="element-name type-name-label">TestClass</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">class_test1 passes.</div>
|
||||
</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public</span> <span class="member-name">TestClass</span>()</div>
|
||||
</span><span class="modifiers">public</span> <span class="element-name">TestClass</span>()</div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">class_test3 passes. This is the second sentence\
|
||||
@ -212,9 +213,10 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
checkOutput("pkg/TestEnum.html", true,
|
||||
"""
|
||||
<hr>
|
||||
<pre>@Deprecated(forRemoval=true)
|
||||
public enum <span class="type-name-label">TestEnum</span>
|
||||
extends java.lang.Enum<<a href="TestEnum.html" title="enum in pkg">TestEnum</a>></pre>
|
||||
<div class="type-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public enum </span><span class="element-name type-name-label">TestEnum</span>
|
||||
<span class="extends-implements">extends java.lang.Enum<<a href="TestEnum.htm\
|
||||
l" title="enum in pkg">TestEnum</a>></span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">enum_test1 passes.</div>
|
||||
@ -223,7 +225,7 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
<div class="member-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public static final</span> <span class="retu\
|
||||
rn-type"><a href="TestEnum.html" title="enum in pkg">TestEnum</a></span> <s\
|
||||
pan class="member-name">FOR_REMOVAL</span></div>
|
||||
pan class="element-name">FOR_REMOVAL</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">enum_test3 passes.</div>
|
||||
@ -232,9 +234,9 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
checkOutput("pkg/TestError.html", true,
|
||||
"""
|
||||
<hr>
|
||||
<pre>@Deprecated(forRemoval=true)
|
||||
public class <span class="type-name-label">TestError</span>
|
||||
extends java.lang.Error</pre>
|
||||
<div class="type-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public class </span><span class="element-name type-name-label">TestError</span>
|
||||
<span class="extends-implements">extends java.lang.Error</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">error_test1 passes.</div>
|
||||
@ -243,9 +245,9 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
checkOutput("pkg/TestException.html", true,
|
||||
"""
|
||||
<hr>
|
||||
<pre>@Deprecated(forRemoval=true)
|
||||
public class <span class="type-name-label">TestException</span>
|
||||
extends java.lang.Exception</pre>
|
||||
<div class="type-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public class </span><span class="element-name type-name-label">TestException</span>
|
||||
<span class="extends-implements">extends java.lang.Exception</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">exception_test1 passes.</div>
|
||||
@ -254,9 +256,9 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
checkOutput("pkg/TestInterface.html", true,
|
||||
"""
|
||||
<hr>
|
||||
<pre>@Deprecated(forRemoval=true)
|
||||
public class <span class="type-name-label">TestInterface</span>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span><span class="modifiers">public class </span><span class="element-name type-name-label">TestInterface</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
||||
moval: This API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">interface_test1 passes.</div>
|
||||
|
@ -87,8 +87,9 @@ public class TestHiddenTag extends JavadocTester {
|
||||
|
||||
checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", true,
|
||||
"""
|
||||
<pre>public static class <span class="type-name-label">A.VisibleInnerExtendsInvisibleInner</span>
|
||||
extends <a href="A.html" title="class in pkg1">A</a></pre>""",
|
||||
<div class="type-signature"><span class="modifiers">public static class </span><\
|
||||
span class="element-name type-name-label">A.VisibleInnerExtendsInvisibleInner</span>
|
||||
<span class="extends-implements">extends <a href="A.html" title="class in pkg1">A</a></span></div>""",
|
||||
"""
|
||||
<code><a href="A.html#visibleField">visibleField</a></code>""",
|
||||
"""
|
||||
|
@ -76,7 +76,8 @@ public class TestHref extends JavadocTester {
|
||||
"Class C4<E extends C4<E>></h1>",
|
||||
//Signature does not link to the page itself.
|
||||
"""
|
||||
public abstract class <span class="type-name-label">C4<E extends C4<E>></span>"""
|
||||
<span class="modifiers">public abstract class </span><span class="element-name type-name\
|
||||
-label">C4<E extends C4<E>></span>"""
|
||||
);
|
||||
|
||||
checkOutput(Output.OUT, false,
|
||||
|
@ -106,9 +106,9 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
|
||||
// for default value.
|
||||
checkOutput("pkg1/C1.html", true,
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">C1</span>
|
||||
extends java.lang.Object
|
||||
implements java.io.Serializable</pre>""");
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">C1</span>
|
||||
<span class="extends-implements">extends java.lang.Object
|
||||
implements java.io.Serializable</span></div>""");
|
||||
checkOutput("pkg1/C4.html", true,
|
||||
"""
|
||||
<dl class="notes">
|
||||
@ -338,15 +338,14 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
|
||||
checkOutput("pkg1/C1.html", expectFound,
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">readObject</span>(\
|
||||
)
|
||||
lass="return-type">void</span> <span class="element-name">readObject</span>()
|
||||
throws <span class="exceptions">java.io.IOException</span></div>
|
||||
</section>
|
||||
</li>""");
|
||||
|
||||
checkOutput("pkg1/C2.html", expectFound,
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span class="member-name">C2</span>()</div>
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">C2</span>()</div>
|
||||
</section>
|
||||
</li>""");
|
||||
|
||||
@ -354,8 +353,8 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public static final</span>\
|
||||
<span class="return-type"><a href="C1.ModalExclusionType.html" title="enum\
|
||||
in pkg1">C1.ModalExclusionType</a></span> <span class="member-name">APPLIC\
|
||||
ATION_EXCLUDE</span></div>
|
||||
in pkg1">C1.ModalExclusionType</a></span> <span class="element-name">APPLICATION_E\
|
||||
XCLUDE</span></div>
|
||||
</section>
|
||||
</li>""");
|
||||
|
||||
|
@ -159,9 +159,10 @@ public class TestHtmlTag extends JavadocTester {
|
||||
|
||||
checkOutput("pkg3/A.ActivationDesc.html", true,
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">A.ActivationDesc</span>
|
||||
extends java.lang.Object
|
||||
implements java.io.Serializable</pre>
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name type-name-label">A.ActivationDesc</span>
|
||||
<span class="extends-implements">extends java.lang.Object
|
||||
implements java.io.Serializable</span></div>
|
||||
<div class="block">An activation descriptor contains the information necessary to activate
|
||||
an object: <ul>
|
||||
<li> the object's group identifier,
|
||||
@ -181,9 +182,10 @@ public class TestHtmlTag extends JavadocTester {
|
||||
|
||||
checkOutput("pkg3/A.ActivationGroupID.html", true,
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">A.ActivationGroupID</span>
|
||||
extends java.lang.Object
|
||||
implements java.io.Serializable</pre>
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name type-name-label">A.ActivationGroupID</span>
|
||||
<span class="extends-implements">extends java.lang.Object
|
||||
implements java.io.Serializable</span></div>
|
||||
<div class="block">The identifier for a registered activation group serves several purposes:
|
||||
<ul>
|
||||
<li>identifies the group uniquely within the activation system, and
|
||||
|
@ -52,8 +52,7 @@ public class TestIndentation extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="type-parameters"><T></span> <span class="return-type">void</spa\
|
||||
n> <span class="member-name">m</span>​<span class="parameters">(T&nbs\
|
||||
p;t1,
|
||||
n> <span class="element-name">m</span>​<span class="parameters">(T t1,
|
||||
T t2)</span>
|
||||
throws <span class="exceptions">java.lang.Exception</span></div>""");
|
||||
|
||||
|
@ -68,11 +68,10 @@ public class TestInterface extends JavadocTester {
|
||||
|
||||
checkOutput("pkg/Interface.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">int</span> <span class="member-name">method</span>()</div>""",
|
||||
<div class="member-signature"><span class="return-type">int</span> <span class="element-name">method</span>()</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">int</span> <span class="member-name">field</span><\
|
||||
/div>""",
|
||||
span class="return-type">int</span> <span class="element-name">field</span></div>""",
|
||||
// Make sure known implementing class list is correct and omits type parameters.
|
||||
"""
|
||||
<dl class="notes">
|
||||
@ -130,8 +129,7 @@ public class TestInterface extends JavadocTester {
|
||||
<section class="detail" id="f">
|
||||
<h3>f</h3>
|
||||
<div class="member-signature"><span class="modifiers">public static</span> \
|
||||
<span class="return-type">int</span> <span class="member-name">f</span></di\
|
||||
v>
|
||||
<span class="return-type">int</span> <span class="element-name">f</span></div>
|
||||
<div class="block">A hider field</div>""",
|
||||
|
||||
"""
|
||||
@ -150,8 +148,8 @@ public class TestInterface extends JavadocTester {
|
||||
<section class="detail" id="staticMethod()">
|
||||
<h3>staticMethod</h3>
|
||||
<div class="member-signature"><span class="modifiers">public static</span> \
|
||||
<span class="return-type">void</span> <span class="member-name">staticMetho\
|
||||
d</span>()</div>
|
||||
<span class="return-type">void</span> <span class="element-name">staticMethod</span\
|
||||
>()</div>
|
||||
<div class="block"><span class="descfrm-type-label">Description copied from inte\
|
||||
rface: <code><a href="InterfaceWithStaticMembers.html#staticMethod()">Inter\
|
||||
faceWithStaticMembers</a></code></span></div>
|
||||
@ -160,8 +158,9 @@ public class TestInterface extends JavadocTester {
|
||||
|
||||
checkOutput("pkg/ClassWithStaticMembers.InnerClass.html", true,
|
||||
"""
|
||||
<pre>public static class <span class="type-name-label">ClassWithStaticMembers.InnerClass</span>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="modifiers">public static class </span><\
|
||||
span class="element-name type-name-label">ClassWithStaticMembers.InnerClass</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
<div class="block">A hider inner class</div>""");
|
||||
}
|
||||
|
||||
|
@ -61,15 +61,15 @@ public class TestJavaFX extends JavadocTester {
|
||||
<a href="#setRate(double)"><code>setRate(double)</code></a></dd>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">void</span> <span class="member-name">setRate</spa\
|
||||
n>​<span class="parameters">(double value)</span></div>
|
||||
span class="return-type">void</span> <span class="element-name">setRate</span>̴\
|
||||
3;<span class="parameters">(double value)</span></div>
|
||||
<div class="block">Sets the value of the property rate.</div>
|
||||
<dl class="notes">
|
||||
<dt>Property description:</dt>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">double</span> <span class="member-name">getRate</s\
|
||||
pan>()</div>
|
||||
span class="return-type">double</span> <span class="element-name">getRate</span>()<\
|
||||
/div>
|
||||
<div class="block">Gets the value of the property rate.</div>
|
||||
<dl class="notes">
|
||||
<dt>Property description:</dt>""",
|
||||
@ -98,22 +98,21 @@ public class TestJavaFX extends JavadocTester {
|
||||
<h3>paused</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type"><a href="C.BooleanProperty.html" title="class in pkg1">\
|
||||
C.BooleanProperty</a></span> <span class="member-name">pausedProperty</span\
|
||||
></div>
|
||||
C.BooleanProperty</a></span> <span class="element-name">pausedProperty</span></div>
|
||||
<div class="block">Defines if paused. The second line.</div>""",
|
||||
"""
|
||||
<section class="detail" id="isPaused()">
|
||||
<h3>isPaused</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">double</span> <span class="member-name">isPaused</\
|
||||
span>()</div>
|
||||
span class="return-type">double</span> <span class="element-name">isPaused</span>()\
|
||||
</div>
|
||||
<div class="block">Gets the value of the property paused.</div>""",
|
||||
"""
|
||||
<section class="detail" id="setPaused(boolean)">
|
||||
<h3>setPaused</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">void</span> <span class="member-name">setPaused</s\
|
||||
pan>​<span class="parameters">(boolean value)</span></div>
|
||||
span class="return-type">void</span> <span class="element-name">setPaused</span>\
|
||||
203;<span class="parameters">(boolean value)</span></div>
|
||||
<div class="block">Sets the value of the property paused.</div>
|
||||
<dl class="notes">
|
||||
<dt>Property description:</dt>
|
||||
@ -124,8 +123,8 @@ public class TestJavaFX extends JavadocTester {
|
||||
<section class="detail" id="isPaused()">
|
||||
<h3>isPaused</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">double</span> <span class="member-name">isPaused</\
|
||||
span>()</div>
|
||||
span class="return-type">double</span> <span class="element-name">isPaused</span>()\
|
||||
</div>
|
||||
<div class="block">Gets the value of the property paused.</div>
|
||||
<dl class="notes">
|
||||
<dt>Property description:</dt>
|
||||
@ -137,16 +136,15 @@ public class TestJavaFX extends JavadocTester {
|
||||
<h3>rate</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type"><a href="C.DoubleProperty.html" title="class in pkg1">C\
|
||||
.DoubleProperty</a></span> <span class="member-name">rateProperty</span></d\
|
||||
iv>
|
||||
.DoubleProperty</a></span> <span class="element-name">rateProperty</span></div>
|
||||
<div class="block">Defines the direction/speed at which the <code>Timeline</code> is expected to
|
||||
be played. This is the second line.</div>""",
|
||||
"""
|
||||
<section class="detail" id="setRate(double)">
|
||||
<h3>setRate</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">void</span> <span class="member-name">setRate</spa\
|
||||
n>​<span class="parameters">(double value)</span></div>
|
||||
span class="return-type">void</span> <span class="element-name">setRate</span>̴\
|
||||
3;<span class="parameters">(double value)</span></div>
|
||||
<div class="block">Sets the value of the property rate.</div>
|
||||
<dl class="notes">
|
||||
<dt>Property description:</dt>
|
||||
@ -160,8 +158,8 @@ public class TestJavaFX extends JavadocTester {
|
||||
<section class="detail" id="getRate()">
|
||||
<h3>getRate</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">double</span> <span class="member-name">getRate</s\
|
||||
pan>()</div>
|
||||
span class="return-type">double</span> <span class="element-name">getRate</span>()<\
|
||||
/div>
|
||||
<div class="block">Gets the value of the property rate.</div>
|
||||
<dl class="notes">
|
||||
<dt>Property description:</dt>
|
||||
@ -249,8 +247,8 @@ public class TestJavaFX extends JavadocTester {
|
||||
<section class="detail" id="betaProperty">
|
||||
<h3>beta</h3>
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">java.lang.Object</span> <span class="member-name">betaPr\
|
||||
operty</span></div>
|
||||
lass="return-type">java.lang.Object</span> <span class="element-name">betaProperty<\
|
||||
/span></div>
|
||||
</section>
|
||||
</li>
|
||||
<li>
|
||||
@ -258,7 +256,7 @@ public class TestJavaFX extends JavadocTester {
|
||||
<h3>gamma</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">java.util.List<java.lang.String></span> <spa\
|
||||
n class="member-name">gammaProperty</span></div>
|
||||
n class="element-name">gammaProperty</span></div>
|
||||
</section>
|
||||
</li>
|
||||
<li>
|
||||
@ -266,7 +264,7 @@ public class TestJavaFX extends JavadocTester {
|
||||
<h3>delta</h3>
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">java.util.List<java.util.Set<? super java.lang.Ob\
|
||||
ject>></span> <span class="member-name">deltaProperty</span></div>
|
||||
ject>></span> <span class="element-name">deltaProperty</span></div>
|
||||
</section>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -60,8 +60,8 @@ public class TestLambdaFeature extends JavadocTester {
|
||||
ble-tab5 method-summary-table"><code>default void</code></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">default</span> <span \
|
||||
class="return-type">void</span> <span class="member-name">defaultMethod</sp\
|
||||
an>()</div>
|
||||
class="return-type">void</span> <span class="element-name">defaultMethod</span>()</\
|
||||
div>
|
||||
""",
|
||||
"""
|
||||
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
||||
|
@ -112,9 +112,11 @@ public class TestLinkOption extends JavadocTester {
|
||||
|
||||
checkOutput("mylib/lang/StringBuilderChild.html", true,
|
||||
"""
|
||||
<pre>public abstract class <span class="type-name-label">StringBuilderChild</span>
|
||||
extends <a href=\"""" + url + """
|
||||
java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></pre>"""
|
||||
<div class="type-signature"><span class="modifiers">public abstract class </span\
|
||||
><span class="element-name type-name-label">StringBuilderChild</span>
|
||||
<span class="extends-implements">extends <a href=\"""" + url + """
|
||||
java/lang/Object.html" title="class or interface in java.lang" class="external-l\
|
||||
ink">Object</a></span></div>"""
|
||||
);
|
||||
|
||||
// Generate the documentation using -linkoffline and a relative path as the first parameter.
|
||||
@ -155,8 +157,9 @@ public class TestLinkOption extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("pkg3/A.html", true,
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">A</span>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
<div class="block">Test links.
|
||||
<br>
|
||||
<a href="../../out2/pkg2/C2.html" title="class or interface in pkg2" class="ext\
|
||||
@ -179,8 +182,9 @@ public class TestLinkOption extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("pkg3/A.html", true,
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">A</span>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
<div class="block">Test links.
|
||||
<br>
|
||||
<a href="../../copy/out2/pkg2/C2.html" title="class or interface in pkg2" class\
|
||||
|
@ -103,8 +103,8 @@ public class TestLiteralCodeInPre extends JavadocTester {
|
||||
</PRE></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">htmlAttrInPre1</sp\
|
||||
an>()</div>
|
||||
lass="return-type">void</span> <span class="element-name">htmlAttrInPre1</span>()</\
|
||||
div>
|
||||
<div class="block">More html tag outliers.
|
||||
<pre>
|
||||
@Override
|
||||
|
@ -121,8 +121,9 @@ public class TestMemberInheritance extends JavadocTester {
|
||||
"""
|
||||
<section class="description">
|
||||
<hr>
|
||||
<pre>public abstract class <span class="type-name-label">DocumentedNonGenericChild</span>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="modifiers">public abstract class </span\
|
||||
><span class="element-name type-name-label">DocumentedNonGenericChild</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
</section>""");
|
||||
|
||||
checkOutput("pkg2/DocumentedNonGenericChild.html", true,
|
||||
@ -142,8 +143,8 @@ public class TestMemberInheritance extends JavadocTester {
|
||||
<section class="detail" id="parentMethod(T)">
|
||||
<h3 id="parentMethod(java.lang.Object)">parentMethod</h3>
|
||||
<div class="member-signature"><span class="modifiers">protected abstract</span>&\
|
||||
nbsp;<span class="return-type">java.lang.String</span> <span class="member-\
|
||||
name">parentMethod</span>​<span class="parameters">(java.lang.String \
|
||||
nbsp;<span class="return-type">java.lang.String</span> <span class="element-name">p\
|
||||
arentMethod</span>​<span class="parameters">(java.lang.String \
|
||||
t)</span>
|
||||
throws <span class="exceptions">java.lang.IllegalArgumentException,
|
||||
java.lang.InterruptedException,
|
||||
@ -169,8 +170,8 @@ public class TestMemberInheritance extends JavadocTester {
|
||||
<section class="detail" id="parentField">
|
||||
<h3>parentField</h3>
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">java.lang.String</span> <span class="member-name">parent\
|
||||
Field</span></div>
|
||||
lass="return-type">java.lang.String</span> <span class="element-name">parentField</\
|
||||
span></div>
|
||||
<div class="block">A field.</div>
|
||||
</section>""");
|
||||
|
||||
@ -185,8 +186,8 @@ public class TestMemberInheritance extends JavadocTester {
|
||||
<section class="detail" id="method(T)">
|
||||
<h3 id="method(java.lang.Object)">method</h3>
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">java.lang.String</span> <span class="member-name">method\
|
||||
</span>​<span class="parameters">(java.lang.String t)</span></div>
|
||||
lass="return-type">java.lang.String</span> <span class="element-name">method</span>\
|
||||
​<span class="parameters">(java.lang.String t)</span></div>
|
||||
</section>""");
|
||||
|
||||
checkOutput("index-all.html", true,
|
||||
@ -233,8 +234,8 @@ public class TestMemberInheritance extends JavadocTester {
|
||||
<section class="detail" id="parentMethod(T)">
|
||||
<h3 id="parentMethod(java.lang.Object)">parentMethod</h3>
|
||||
<div class="member-signature"><span class="modifiers">protected abstract</span>&\
|
||||
nbsp;<span class="return-type">java.lang.String</span> <span class="member-\
|
||||
name">parentMethod</span>​<span class="parameters">(java.lang.String \
|
||||
nbsp;<span class="return-type">java.lang.String</span> <span class="element-name">p\
|
||||
arentMethod</span>​<span class="parameters">(java.lang.String \
|
||||
t)</span>
|
||||
throws <span class="exceptions">java.lang.IllegalArgumentException,
|
||||
java.lang.InterruptedException,
|
||||
|
@ -61,7 +61,7 @@ public class TestMemberSummary extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type"><a href="PublicChild.html" title="class in pkg">PublicChild</\
|
||||
a></span> <span class="member-name">returnTypeTest</span>()</div>""",
|
||||
a></span> <span class="element-name">returnTypeTest</span>()</div>""",
|
||||
"""
|
||||
<div class="col-constructor-name even-row-color"><code><span class="member-name-link"\
|
||||
><a href="#%3Cinit%3E()">PublicChild</a></span>()</code></div>
|
||||
|
@ -51,11 +51,11 @@ public class TestMethodSignature extends JavadocTester {
|
||||
checkOutput("pkg/C.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations">@Generated("GeneratedConstructor")
|
||||
</span><span class="modifiers">public</span> <span class="member-name">C</span>()</div>""",
|
||||
</span><span class="modifiers">public</span> <span class="element-name">C</span>()</div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public static</span> \
|
||||
<span class="return-type">void</span> <span class="member-name">simpleMetho\
|
||||
<span class="return-type">void</span> <span class="element-name">simpleMetho\
|
||||
d</span>​<span class="parameters">(int i,
|
||||
java.lang.String s,
|
||||
boolean b)</span></div>""",
|
||||
@ -65,8 +65,8 @@ public class TestMethodSignature extends JavadocTester {
|
||||
date="a date",
|
||||
comments="some comment about the method below")
|
||||
</span><span class="modifiers">public static</span> <span class="return-typ\
|
||||
e">void</span> <span class="member-name">annotatedMethod</span>​<span\
|
||||
class="parameters">(int i,
|
||||
e">void</span> <span class="element-name">annotatedMethod</span>​<span class=\
|
||||
"parameters">(int i,
|
||||
java.lang.String s,
|
||||
boolean b)</span></div>""",
|
||||
|
||||
@ -83,9 +83,9 @@ public class TestMethodSignature extends JavadocTester {
|
||||
T8 extends java.lang.AutoCloseable></span>
|
||||
<span class="return-type"><a href="C.With8Types.html" title="class in pkg">C.Wit\
|
||||
h8Types</a><T1,​T2,​T3,​T4,​T5,​T6,​T7,&#\
|
||||
8203;T8></span> <span class="member-name">bigGenericMethod</span>​\
|
||||
<span class="parameters">(<a href="C.F0.html" title="interface in pkg">C.F0</a>&\
|
||||
lt;? extends T1> t1,
|
||||
8203;T8></span> <span class="element-name">bigGenericMethod</span>​<span c\
|
||||
lass="parameters">(<a href="C.F0.html" title="interface in pkg">C.F0</a><? ex\
|
||||
tends T1> t1,
|
||||
<a href="C.F0.html" title="interface in pkg">C.F0</a><? extends T2> t2,
|
||||
<a href="C.F0.html" title="interface in pkg">C.F0</a><? extends T3> t3,
|
||||
<a href="C.F0.html" title="interface in pkg">C.F0</a><? extends T4> t4,
|
||||
@ -111,9 +111,9 @@ public class TestMethodSignature extends JavadocTester {
|
||||
T8 extends java.lang.AutoCloseable></span>
|
||||
<span class="return-type"><a href="C.With8Types.html" title="class in pkg">C.Wit\
|
||||
h8Types</a><T1,​T2,​T3,​T4,​T5,​T6,​T7,&#\
|
||||
8203;T8></span> <span class="member-name">bigGenericAnnotatedMethod</spa\
|
||||
n>​<span class="parameters">(<a href="C.F0.html" title="interface in pkg">\
|
||||
C.F0</a><? extends T1> t1,
|
||||
8203;T8></span> <span class="element-name">bigGenericAnnotatedMethod</span>̴\
|
||||
3;<span class="parameters">(<a href="C.F0.html" title="interface in pkg">C.F0</a\
|
||||
><? extends T1> t1,
|
||||
<a href="C.F0.html" title="interface in pkg">C.F0</a><? extends T2> t2,
|
||||
<a href="C.F0.html" title="interface in pkg">C.F0</a><? extends T3> t3,
|
||||
<a href="C.F0.html" title="interface in pkg">C.F0</a><? extends T4> t4,
|
||||
|
@ -47,19 +47,24 @@ public class TestModifierEx extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("pkg1/Abstract.html", true,
|
||||
"""
|
||||
<pre>public abstract class <span class="type-name-label">Abstract</span>""");
|
||||
<div class="type-signature"><span class="modifiers">public abstract class </span\
|
||||
><span class="element-name type-name-label">Abstract</span>""");
|
||||
checkOutput("pkg1/Interface.html", true,
|
||||
"""
|
||||
<pre>interface <span class="type-name-label">Interface</span></pre>""");
|
||||
<div class="type-signature"><span class="modifiers">interface </span><span class\
|
||||
="element-name type-name-label">Interface</span></div>""");
|
||||
checkOutput("pkg1/Interface.Kind.html", true,
|
||||
"""
|
||||
<pre>public static interface <span class="type-name-label">Interface.Kind</span></pre>""");
|
||||
<div class="type-signature"><span class="modifiers">public static interface </sp\
|
||||
an><span class="element-name type-name-label">Interface.Kind</span></div>""");
|
||||
checkOutput("pkg1/Enum.html", true,
|
||||
"""
|
||||
<pre>public enum <span class="type-name-label">Enum</span>""");
|
||||
<div class="type-signature"><span class="modifiers">public enum </span><span cla\
|
||||
ss="element-name type-name-label">Enum</span>""");
|
||||
checkOutput("pkg1/Klass.StaticEnum.html", true,
|
||||
"""
|
||||
<pre>public static enum <span class="type-name-label">Klass.StaticEnum</span>""");
|
||||
<div class="type-signature"><span class="modifiers">public static enum </span><s\
|
||||
pan class="element-name type-name-label">Klass.StaticEnum</span>""");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,7 +27,7 @@
|
||||
* 8168766 8168688 8162674 8160196 8175799 8174974 8176778 8177562 8175218
|
||||
* 8175823 8166306 8178043 8181622 8183511 8169819 8074407 8183037 8191464
|
||||
* 8164407 8192007 8182765 8196200 8196201 8196202 8196202 8205593 8202462
|
||||
* 8184205 8219060 8223378 8234746 8239804 8239816 8253117
|
||||
* 8184205 8219060 8223378 8234746 8239804 8239816 8253117 8245058
|
||||
* @summary Test modules support in javadoc.
|
||||
* @library ../../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
@ -497,27 +497,6 @@ public class TestModules extends JavadocTester {
|
||||
<caption><span>Modules</span><span class="tab-end"> </span></caption>""");
|
||||
}
|
||||
|
||||
void checkNoDescription(boolean found) {
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"""
|
||||
<div class="header">
|
||||
<p>@Deprecated(forRemoval=true)
|
||||
</p>
|
||||
<h1 title="Module" class="title">Module moduleA</h1>
|
||||
</div><ul class="block-list">
|
||||
<li>
|
||||
<ul class="block-list">
|
||||
<li>
|
||||
<!-- ============ PACKAGES SUMMARY =========== -->""");
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"""
|
||||
<ul class="block-list">
|
||||
<li>
|
||||
<ul class="block-list">
|
||||
<li>
|
||||
<!-- ============ PACKAGES SUMMARY =========== -->""");
|
||||
}
|
||||
|
||||
void checkHtml5Description(boolean found) {
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"""
|
||||
@ -563,10 +542,11 @@ public class TestModules extends JavadocTester {
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"""
|
||||
<div class="header">
|
||||
<p>@Deprecated(forRemoval=true)
|
||||
</p>
|
||||
<h1 title="Module" class="title">Module moduleA</h1>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="module-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
||||
</span>module <span class="element-name">moduleA</span></div>
|
||||
<section class="summary">
|
||||
<ul class="summary-list">
|
||||
<li>
|
||||
@ -574,13 +554,15 @@ public class TestModules extends JavadocTester {
|
||||
<!-- ============ PACKAGES SUMMARY =========== -->""");
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"""
|
||||
<p><a href="testpkgmdlB/AnnotationType.html" title="annotation in testpkgmdlB">@\
|
||||
AnnotationType</a>(<a href="testpkgmdlB/AnnotationType.html#optional()">optional\
|
||||
</a>="Module Annotation",
|
||||
<a href="testpkgmdlB/AnnotationType.html#required()">required</a>=2016)
|
||||
</p>
|
||||
<div class="header">
|
||||
<h1 title="Module" class="title">Module moduleB</h1>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="module-signature"><span class="annotations"><a href="testpkgmdlB/Ann\
|
||||
otationType.html" title="annotation in testpkgmdlB">@AnnotationType</a>(<a href=\
|
||||
"testpkgmdlB/AnnotationType.html#optional()">optional</a>="Module Annotation",
|
||||
<a href="testpkgmdlB/AnnotationType.html#required()">required</a>=2016)
|
||||
</span>module <span class="element-name">moduleB</span></div>
|
||||
<section class="summary">
|
||||
<ul class="summary-list">
|
||||
<li>
|
||||
@ -1119,8 +1101,12 @@ public class TestModules extends JavadocTester {
|
||||
""");
|
||||
checkOutput("moduletags/module-summary.html", found,
|
||||
"""
|
||||
<p>@Deprecated
|
||||
</p>""",
|
||||
<div class="header">
|
||||
<h1 title="Module" class="title">Module moduletags</h1>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="module-signature"><span class="annotations">@Deprecated
|
||||
</span>module <span class="element-name">moduletags</span></div>""",
|
||||
"""
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>""");
|
||||
}
|
||||
@ -1128,11 +1114,16 @@ public class TestModules extends JavadocTester {
|
||||
void checkModuleAnnotation() {
|
||||
checkOutput("moduleB/module-summary.html", true,
|
||||
"""
|
||||
<p><a href="testpkgmdlB/AnnotationType.html" title="annotation in testpkgmdlB">@\
|
||||
AnnotationType</a>(<a href="testpkgmdlB/AnnotationType.html#optional()">optional\
|
||||
</a>="Module Annotation",
|
||||
<div class="header">
|
||||
<h1 title="Module" class="title">Module moduleB</h1>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="module-signature"><span class="annotations"><a href="testpkgmdlB/Ann\
|
||||
otationType.html" title="annotation in testpkgmdlB">@AnnotationType</a>(<a href=\
|
||||
"testpkgmdlB/AnnotationType.html#optional()">option\
|
||||
al</a>="Module Annotation",
|
||||
<a href="testpkgmdlB/AnnotationType.html#required()">required</a>=2016)
|
||||
</p>""");
|
||||
</span>module <span class="element-name">moduleB</span></div>""");
|
||||
checkOutput("moduleB/module-summary.html", false,
|
||||
"@AnnotationTypeUndocumented");
|
||||
}
|
||||
@ -1349,8 +1340,10 @@ public class TestModules extends JavadocTester {
|
||||
"""
|
||||
<section class="description">
|
||||
<hr>
|
||||
<pre>public class <a href="../../src-html/moduleA/testpkgmdlA/TestClassInModuleA.html#line.25">TestClassInModuleA</a>
|
||||
extends java.lang.Object</pre>
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name"><a href="../../src-html/moduleA/testpkgmdlA/TestClassInModule\
|
||||
A.html#line.25">TestClassInModuleA</a></span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>
|
||||
</section>""");
|
||||
checkOutput("src-html/moduleA/testpkgmdlA/TestClassInModuleA.html", true,
|
||||
"""
|
||||
|
@ -67,9 +67,11 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
// Make sure enum header is correct.
|
||||
"Enum Coin</h1>",
|
||||
// Make sure enum signature is correct.
|
||||
"""
|
||||
<pre>public enum <span class="type-name-label">Coin</span>
|
||||
extends java.lang.Enum<<a href="Coin.html" title="enum in pkg">Coin</a>></pre>""",
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public enum </span><span clas\
|
||||
s="element-name type-name-label">Coin</span>
|
||||
<span class="extends-implements">extends java.lang.Enum<<a href="Coin.html" ti\
|
||||
tle="enum in pkg">Coin</a>></span></div>""",
|
||||
// Check for enum constant section
|
||||
"<div class=\"caption\"><span>Enum Constants</span></div>",
|
||||
// Detail for enum constant
|
||||
@ -83,8 +85,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public static</span> \
|
||||
<span class="return-type"><a href="Coin.html" title="enum in pkg">Coin</a></span\
|
||||
> <span class="member-name">valueOf</span>​<span class="parameters">(\
|
||||
java.lang.String name)</span></div>
|
||||
> <span class="element-name">valueOf</span>​<span class="parameters">(java.la\
|
||||
ng.String name)</span></div>
|
||||
<div class="block">Returns the enum constant of this type with the specified name.
|
||||
The string must match <i>exactly</i> an identifier used to declare an
|
||||
enum constant in this type. (Extraneous whitespace characters are\s
|
||||
@ -134,9 +136,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="type-parameters"><T extends java.util.List,​
|
||||
V></span>
|
||||
<span class="return-type">java.lang.String[]</span> <span class="member-nam\
|
||||
e">methodThatHasTypeParameters</span>​<span class="parameters">(T par\
|
||||
am1,
|
||||
<span class="return-type">java.lang.String[]</span> <span class="element-name">meth\
|
||||
odThatHasTypeParameters</span>​<span class="parameters">(T param1,
|
||||
V param2)</span></div>""",
|
||||
// Method that returns TypeParameters
|
||||
"""
|
||||
@ -151,8 +152,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type"><a href="TypeParameters.html" title="type parameter in TypePa\
|
||||
rameters">E</a>[]</span> <span class="member-name">methodThatReturnsTypePar\
|
||||
ameterA</span>​<span class="parameters">(<a href="TypeParameters.html" tit\
|
||||
rameters">E</a>[]</span> <span class="element-name">methodThatReturnsTypeParameterA\
|
||||
</span>​<span class="parameters">(<a href="TypeParameters.html" tit\
|
||||
le="type parameter in TypeParameters">E</a>[] e)</span></div>
|
||||
""",
|
||||
"""
|
||||
@ -197,8 +198,11 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
// Signature of subclass that has type parameters.
|
||||
checkOutput("pkg/TypeParameterSubClass.html", true,
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">TypeParameterSubClass<T extends java.lang.String></span>
|
||||
extends <a href="TypeParameterSuperClass.html" title="class in pkg">TypeParameterSuperClass</a><T></pre>""");
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name type-name-label">TypeParameterSubClass<T extends java.lang.\
|
||||
String></span>
|
||||
<span class="extends-implements">extends <a href="TypeParameterSuperClass.html" \
|
||||
title="class in pkg">TypeParameterSuperClass</a><T></span></div>""");
|
||||
|
||||
// Interface generic parameter substitution
|
||||
// Signature of subclass that has type parameters.
|
||||
@ -232,8 +236,8 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="type-parameters"><T extends java.lang.Number & java.lang.Runnable&g\
|
||||
t;</span>
|
||||
<span class="return-type">T</span> <span class="member-name">foo</span>R\
|
||||
03;<span class="parameters">(T t)</span></div>""");
|
||||
<span class="return-type">T</span> <span class="element-name">foo</span>​<spa\
|
||||
n class="parameters">(T t)</span></div>""");
|
||||
|
||||
//==============================================================
|
||||
// Test Class-Use Documentation for Type Parameters.
|
||||
@ -523,11 +527,13 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
checkOutput("pkg/AnnotationTypeUsage.html", true,
|
||||
// CLASS
|
||||
"""
|
||||
<pre><a href="AnnotationType.html" title="annotation in pkg">@AnnotationType</a>\
|
||||
(<a href="AnnotationType.html#optional()">optional</a>="Class Annotation",
|
||||
<div class="type-signature"><span class="annotations"><a href="AnnotationType.ht\
|
||||
ml" title="annotation in pkg">@AnnotationType</a>(<a href="AnnotationType.html#o\
|
||||
ptional()">optional</a>="Class Annotation",
|
||||
<a href="AnnotationType.html#required()">required</a>=1994)
|
||||
public class <span class="type-name-label">AnnotationTypeUsage</span>
|
||||
extends java.lang.Object</pre>""",
|
||||
</span><span class="modifiers">public class </span><span class="element-name type-name-l\
|
||||
abel">AnnotationTypeUsage</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>""",
|
||||
// FIELD
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations"><a href="AnnotationType.\
|
||||
@ -535,14 +541,14 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
#optional()">optional</a>="Field Annotation",
|
||||
<a href="AnnotationType.html#required()">required</a>=1994)
|
||||
</span><span class="modifiers">public</span> <span class="return-type">int<\
|
||||
/span> <span class="member-name">field</span></div>""",
|
||||
/span> <span class="element-name">field</span></div>""",
|
||||
// CONSTRUCTOR
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations"><a href="AnnotationType.\
|
||||
html" title="annotation in pkg">@AnnotationType</a>(<a href="AnnotationType.html\
|
||||
#optional()">optional</a>="Constructor Annotation",
|
||||
<a href="AnnotationType.html#required()">required</a>=1994)
|
||||
</span><span class="modifiers">public</span> <span class="member-name">AnnotationTypeUsage</span>()</div>""",
|
||||
</span><span class="modifiers">public</span> <span class="element-name">AnnotationTypeUsage</span>()</div>""",
|
||||
// METHOD
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations"><a href="AnnotationType.\
|
||||
@ -550,24 +556,24 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
#optional()">optional</a>="Method Annotation",
|
||||
<a href="AnnotationType.html#required()">required</a>=1994)
|
||||
</span><span class="modifiers">public</span> <span class="return-type">void\
|
||||
</span> <span class="member-name">method</span>()</div>""",
|
||||
</span> <span class="element-name">method</span>()</div>""",
|
||||
// METHOD PARAMS
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">methodWithParams</\
|
||||
span>​<span class="parameters">(<a href="AnnotationType.html" title="annot\
|
||||
ation in pkg">@AnnotationType</a>(<a href="AnnotationType.html#optional()">optio\
|
||||
nal</a>="Parameter Annotation",<a href="AnnotationType.html#required()">required\
|
||||
</a>=1994)
|
||||
lass="return-type">void</span> <span class="element-name">methodWithParams</span>&#\
|
||||
8203;<span class="parameters">(<a href="AnnotationType.html" title="annotation i\
|
||||
n pkg">@AnnotationType</a>(<a href="AnnotationType.html#optional()">optional</a>\
|
||||
="Parameter Annotation",<a href="AnnotationType.html#required()">required</a>=19\
|
||||
94)
|
||||
int documented,
|
||||
int undocmented)</span></div>""",
|
||||
// CONSTRUCTOR PARAMS
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="member-name">AnnotationTypeUsage</span>​<span class="parameters">(<a\
|
||||
href="AnnotationType.html" title="annotation in pkg">@AnnotationType</a>(<a hre\
|
||||
f="AnnotationType.html#optional()">optional</a>="Constructor Param Annotation",<\
|
||||
a href="AnnotationType.html#required()">required</a>=1994)
|
||||
lass="element-name">AnnotationTypeUsage</span>​<span class="parameters">(<\
|
||||
a href="AnnotationType.html" title="annotation in pkg">@AnnotationType</a>(<a hr\
|
||||
ef="AnnotationType.html#optional()">optional</a>="Constructor Param Annotation",\
|
||||
<a href="AnnotationType.html#required()">required</a>=1994)
|
||||
int documented,
|
||||
int undocmented)</span></div>""");
|
||||
|
||||
@ -682,12 +688,11 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
|
||||
// XXX: Add array test case after this if fixed:
|
||||
//5020899: Incorrect internal representation of class-valued annotation elements
|
||||
// Make sure that annotations are surrounded by <pre> and </pre>
|
||||
checkOutput("pkg1/B.html", true,
|
||||
"""
|
||||
<pre><a href="A.html" title="annotation in pkg1">@A</a>""",
|
||||
<div class="type-signature"><span class="annotations"><a href="A.html" title="annotation in pkg1">@A</a>""",
|
||||
"""
|
||||
public interface <span class="type-name-label">B</span></pre>""");
|
||||
<span class="modifiers">public interface </span><span class="element-name type-name-label">B</span></div>""");
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -192,21 +192,23 @@ public class TestOptions extends JavadocTester {
|
||||
checkLinks();
|
||||
checkOutput("linksource/AnnotationTypeField.html", true,
|
||||
"""
|
||||
<pre>@Documented
|
||||
public @interface <a href="../src-html/linksource/AnnotationTypeField.html#line.31">AnnotationTypeField</a></pre>""",
|
||||
<div class="type-signature"><span class="annotations">@Documented
|
||||
</span><span class="modifiers">public @interface </span><span class="element-name"><a hr\
|
||||
ef="../src-html/linksource/AnnotationTypeField.html#line.31">AnnotationTypeField\
|
||||
</a></span></div>""",
|
||||
"""
|
||||
<section class="detail" id="DEFAULT_NAME">
|
||||
<h3>DEFAULT_NAME</h3>
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">java.lang.String</span> <span class="member-name">\
|
||||
<a href="../src-html/linksource/AnnotationTypeField.html#line.32">DEFAULT_NAME</\
|
||||
a></span></div>""",
|
||||
span class="return-type">java.lang.String</span> <span class="element-name"><a href\
|
||||
="../src-html/linksource/AnnotationTypeField.html#line.32">DEFAULT_NAME</a></spa\
|
||||
n></div>""",
|
||||
"""
|
||||
<section class="detail" id="name()">
|
||||
<h3>name</h3>
|
||||
<div class="member-signature"><span class="return-type">java.lang.String</span>&\
|
||||
nbsp;<span class="member-name"><a href="../src-html/linksource/AnnotationTypeFie\
|
||||
ld.html#line.34">name</a></span></div>""");
|
||||
nbsp;<span class="element-name"><a href="../src-html/linksource/AnnotationTypeField.html\
|
||||
#line.34">name</a></span></div>""");
|
||||
|
||||
checkOutput("src-html/linksource/AnnotationTypeField.html", true,
|
||||
"<title>Source code</title>",
|
||||
@ -215,11 +217,12 @@ public class TestOptions extends JavadocTester {
|
||||
|
||||
checkOutput("linksource/Properties.html", true,
|
||||
"""
|
||||
<pre>public class <a href="../src-html/linksource/Properties.html#line.29">Properties</a>""",
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name"><a href="../src-html/linksource/Properties.html#line.29">Properties</a>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">java.lang.Object</span> <span class="member-name"><a hre\
|
||||
f="../src-html/linksource/Properties.html#line.31">someProperty</a></span></div>""");
|
||||
lass="return-type">java.lang.Object</span> <span class="element-name"><a href="../s\
|
||||
rc-html/linksource/Properties.html#line.31">someProperty</a></span></div>""");
|
||||
|
||||
checkOutput("src-html/linksource/Properties.html", true,
|
||||
"<title>Source code</title>",
|
||||
@ -228,20 +231,22 @@ public class TestOptions extends JavadocTester {
|
||||
|
||||
checkOutput("linksource/SomeClass.html", true,
|
||||
"""
|
||||
<pre>public class <a href="../src-html/linksource/SomeClass.html#line.29">SomeClass</a>
|
||||
extends java.lang.Object</pre>""",
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name"><a href="../src-html/linksource/SomeClass.html#line.29">SomeC\
|
||||
lass</a></span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">int</span> <span class="member-name"><a href="../src-htm\
|
||||
l/linksource/SomeClass.html#line.31">field</a></span></div>""",
|
||||
lass="return-type">int</span> <span class="element-name"><a href="../src-html/links\
|
||||
ource/SomeClass.html#line.31">field</a></span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="member-name"><a href="../src-html/linksource/SomeClass.html#line.33">SomeC\
|
||||
lass</a></span>()</div>""",
|
||||
lass="element-name"><a href="../src-html/linksource/SomeClass.html#line.33">Some\
|
||||
Class</a></span>()</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">int</span> <span class="member-name"><a href="../src-htm\
|
||||
l/linksource/SomeClass.html#line.36">method</a></span>()</div>""");
|
||||
lass="return-type">int</span> <span class="element-name"><a href="../src-html/links\
|
||||
ource/SomeClass.html#line.36">method</a></span>()</div>""");
|
||||
|
||||
checkOutput("src-html/linksource/SomeClass.html", true,
|
||||
"<title>Source code</title>",
|
||||
@ -258,13 +263,13 @@ public class TestOptions extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public static final</span>\
|
||||
<span class="return-type"><a href="SomeEnum.html" title="enum in linksourc\
|
||||
e">SomeEnum</a></span> <span class="member-name"><a href="../src-html/links\
|
||||
ource/SomeEnum.html#line.29">VALUE1</a></span></div>""",
|
||||
e">SomeEnum</a></span> <span class="element-name"><a href="../src-html/linksource/S\
|
||||
omeEnum.html#line.29">VALUE1</a></span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public static final</span>\
|
||||
<span class="return-type"><a href="SomeEnum.html" title="enum in linksourc\
|
||||
e">SomeEnum</a></span> <span class="member-name"><a href="../src-html/links\
|
||||
ource/SomeEnum.html#line.30">VALUE2</a></span></div>""");
|
||||
e">SomeEnum</a></span> <span class="element-name"><a href="../src-html/linksource/S\
|
||||
omeEnum.html#line.30">VALUE2</a></span></div>""");
|
||||
|
||||
checkOutput("src-html/linksource/SomeEnum.html", true,
|
||||
"""
|
||||
|
@ -588,20 +588,16 @@ public class TestOrdering extends JavadocTester {
|
||||
"<h2>Field Details</h2>",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">int</span> <span class="member-name">one</span></d\
|
||||
iv>""",
|
||||
span class="return-type">int</span> <span class="element-name">one</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">int</span> <span class="member-name">two</span></d\
|
||||
iv>""",
|
||||
span class="return-type">int</span> <span class="element-name">two</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">int</span> <span class="member-name">three</span><\
|
||||
/div>""",
|
||||
span class="return-type">int</span> <span class="element-name">three</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">static final</span> <\
|
||||
span class="return-type">int</span> <span class="member-name">four</span></\
|
||||
div>""");
|
||||
span class="return-type">int</span> <span class="element-name">four</span></div>""");
|
||||
|
||||
checkOrder("pkg5/AnnoOptionalTest.html",
|
||||
"<h2>Optional Element Summary</h2>",
|
||||
|
@ -56,8 +56,7 @@ public class TestBadOverride extends JavadocTester {
|
||||
<section class="detail" id="toString()">
|
||||
<h3>toString</h3>
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">toString</span>()<\
|
||||
/div>
|
||||
lass="return-type">void</span> <span class="element-name">toString</span>()</div>
|
||||
<div class="block">Why can't I do this ?</div>
|
||||
</section>""");
|
||||
}
|
||||
|
@ -62,13 +62,13 @@ public class TestOverriddenDeprecatedMethods extends JavadocTester {
|
||||
"""
|
||||
<span class="annotations">@Deprecated
|
||||
</span><span class="modifiers">public</span> <span class="return-type">void\
|
||||
</span> <span class="member-name">func1</span>()""",
|
||||
</span> <span class="element-name">func1</span>()""",
|
||||
"""
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>""",
|
||||
"""
|
||||
<span class="annotations">@Deprecated
|
||||
</span><span class="modifiers">public</span> <span class="return-type">void\
|
||||
</span> <span class="member-name">func2</span>()""",
|
||||
</span> <span class="element-name">func2</span>()""",
|
||||
"""
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>""",
|
||||
"""
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8222091
|
||||
* @bug 8222091 8245058
|
||||
* @summary Javadoc does not handle package annotations correctly on package-info.java
|
||||
* @library ../../lib/
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
@ -52,10 +52,11 @@ public class TestPackageAnnotation extends JavadocTester {
|
||||
"""
|
||||
<main role="main">
|
||||
<div class="header">
|
||||
<p>@Deprecated(since="1<2>3")
|
||||
</p>
|
||||
<h1 title="Package" class="title">Package pkg1</h1>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="package-signature"><span class="annotations">@Deprecated(since="1<2>3")
|
||||
</span>package <span class="element-name">pkg1</span></div>
|
||||
""");
|
||||
}
|
||||
|
||||
@ -87,10 +88,11 @@ public class TestPackageAnnotation extends JavadocTester {
|
||||
"""
|
||||
<main role="main">
|
||||
<div class="header">
|
||||
<p>@Deprecated(since="1<2>3")
|
||||
</p>
|
||||
<h1 title="Package" class="title">Package pkg3</h1>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="package-signature"><span class="annotations">@Deprecated(since="1<2>3")
|
||||
</span>package <span class="element-name">pkg3</span></div>
|
||||
""");
|
||||
}
|
||||
}
|
||||
|
@ -73,8 +73,8 @@ public class TestPrivateClasses extends JavadocTester {
|
||||
// Method is documented as though it is declared in the inheriting method.
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">methodInheritedFro\
|
||||
mParent</span>​<span class="parameters">(int p1)</span>
|
||||
lass="return-type">void</span> <span class="element-name">methodInheritedFromParent\
|
||||
</span>​<span class="parameters">(int p1)</span>
|
||||
throws <span class="exceptions">java.lang.Exception</span></div>""",
|
||||
"""
|
||||
<dl class="notes">
|
||||
@ -191,7 +191,8 @@ public class TestPrivateClasses extends JavadocTester {
|
||||
blicInterface</a></code></dd>
|
||||
</dl>""",
|
||||
"""
|
||||
<pre>public class <span class="type-name-label">PublicChild</span>""");
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
||||
ass="element-name type-name-label">PublicChild</span>""");
|
||||
|
||||
checkOutput("pkg/PublicInterface.html", true,
|
||||
// Field inheritence from non-public superinterface.
|
||||
@ -235,10 +236,12 @@ public class TestPrivateClasses extends JavadocTester {
|
||||
//Make sure when no modifier appear in the class signature, the
|
||||
//signature is displayed correctly without extra space at the beginning.
|
||||
"""
|
||||
<pre>class <span class="type-name-label">PrivateParent</span>""");
|
||||
<div class="type-signature"><span class="modifiers">class </span><span class="el\
|
||||
ement-name type-name-label">PrivateParent</span>""");
|
||||
|
||||
checkOutput("pkg/PrivateParent.html", false,
|
||||
"""
|
||||
<pre> class <span class="type-name-label">PrivateParent</span>""");
|
||||
<div class="type-signature"><span class="modifiers"> class </span><span class="el\
|
||||
ement-name type-name-label">PrivateParent</span>""");
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ public class TestProperty extends JavadocTester {
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type"><a href="ObjectProperty.html" title="class in pkg">Obje\
|
||||
ctProperty</a><<a href="MyObj.html" title="class in pkg">MyObj</a>></span>\
|
||||
<span class="member-name">goodProperty</span></div>
|
||||
<span class="element-name">goodProperty</span></div>
|
||||
<div class="block">This is an Object property where the Object is a single Object.</div>
|
||||
<dl class="notes">
|
||||
<dt>See Also:</dt>
|
||||
@ -67,7 +67,7 @@ public class TestProperty extends JavadocTester {
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type"><a href="ObjectProperty.html" title="class in pkg">Obje\
|
||||
ctProperty</a><<a href="MyObj.html" title="class in pkg">MyObj</a>[]></spa\
|
||||
n> <span class="member-name">badProperty</span></div>
|
||||
n> <span class="element-name">badProperty</span></div>
|
||||
<div class="block">This is an Object property where the Object is an array.</div>
|
||||
<dl class="notes">
|
||||
<dt>See Also:</dt>
|
||||
@ -100,8 +100,8 @@ public class TestProperty extends JavadocTester {
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type"><a href="ObjectProperty.html" title="class in pkg">Obje\
|
||||
ctProperty</a><java.util.List<<a href="MyClassT.html" title="type paramete\
|
||||
r in MyClassT">T</a>>></span> <span class="member-name">listProperty<\
|
||||
/span></div>
|
||||
r in MyClassT">T</a>>></span> <span class="element-name">listProperty</span><\
|
||||
/div>
|
||||
<div class="block">This is an Object property where the Object is a single <code>List<T></code>.</div>
|
||||
<dl class="notes">
|
||||
<dt>See Also:</dt>
|
||||
|
@ -75,7 +75,7 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"""
|
||||
<h1 title="Record R" class="title">Record R</h1>""",
|
||||
"""
|
||||
public record <span class="type-name-label">R</span>""",
|
||||
<span class="modifiers">public record </span><span class="element-name type-name-label">R</span>""",
|
||||
"""
|
||||
<code><span class="member-name-link"><a href="#%3Cinit%3E(int)">R</a></span>​(int r1)</code>""");
|
||||
}
|
||||
@ -96,7 +96,7 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"""
|
||||
<h1 title="Record R" class="title">Record R</h1>""",
|
||||
"""
|
||||
public record <span class="type-name-label">R</span>""",
|
||||
<span class="modifiers">public record </span><span class="element-name type-name-label">R</span>""",
|
||||
"""
|
||||
<code><span class="member-name-link"><a href="#%3Cinit%3E(int)">R</a></span>​(int r1)</code>""");
|
||||
}
|
||||
@ -117,7 +117,7 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"""
|
||||
<h1 title="Record R" class="title">Record R</h1>""",
|
||||
"""
|
||||
public record <span class="type-name-label">R</span>""",
|
||||
<span class="modifiers">public record </span><span class="element-name type-name-label">R</span>""",
|
||||
"""
|
||||
<code><span class="member-name-link"><a href="#%3Cinit%3E()">R</a></span>()</code>""");
|
||||
}
|
||||
@ -142,7 +142,7 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"""
|
||||
<h1 title="Record R" class="title">Record R</h1>""",
|
||||
"""
|
||||
public record <span class="type-name-label">R</span>""",
|
||||
<span class="modifiers">public record </span><span class="element-name type-name-label">R</span>""",
|
||||
"""
|
||||
<dl class="notes">
|
||||
<dt>Record Components:</dt>
|
||||
@ -173,7 +173,7 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"""
|
||||
<h1 title="Record R" class="title">Record R<T></h1>""",
|
||||
"""
|
||||
public record <span class="type-name-label">R<T></span>""",
|
||||
<span class="modifiers">public record </span><span class="element-name type-name-label">R<T></span>""",
|
||||
"""
|
||||
<dl class="notes">
|
||||
<dt>Type Parameters:</dt>
|
||||
@ -226,22 +226,22 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"Returns a string representation of this record.",
|
||||
"Method Details",
|
||||
"""
|
||||
<span class="member-name">toString</span>""",
|
||||
<span class="element-name">toString</span>""",
|
||||
"Returns a string representation of this record. The representation "
|
||||
+ "contains the name of the type, followed by the name and value of "
|
||||
+ "each of the record components.",
|
||||
"""
|
||||
<span class="member-name">hashCode</span>""",
|
||||
<span class="element-name">hashCode</span>""",
|
||||
"Returns a hash code value for this object. The value is derived "
|
||||
+ "from the hash code of each of the record components.",
|
||||
"""
|
||||
<span class="member-name">equals</span>""",
|
||||
<span class="element-name">equals</span>""",
|
||||
"""
|
||||
Indicates whether some other object is "equal to" this one. The objects are equa\
|
||||
l if the other object is of the same class and if all the record components are \
|
||||
equal. All components in this record are compared with '=='.""",
|
||||
"""
|
||||
<span class="member-name">r1</span>""",
|
||||
<span class="element-name">r1</span>""",
|
||||
"""
|
||||
Returns the value of the <a href="#param-r1"><code>r1</code></a> record component."""
|
||||
);
|
||||
@ -289,22 +289,22 @@ public class TestRecordTypes extends JavadocTester {
|
||||
"Returns a string representation of this record.",
|
||||
"Method Details",
|
||||
"""
|
||||
<span class="member-name">toString</span>""",
|
||||
<span class="element-name">toString</span>""",
|
||||
"Returns a string representation of this record. The representation "
|
||||
+ "contains the name of the type, followed by the name and value of "
|
||||
+ "each of the record components.",
|
||||
"""
|
||||
<span class="member-name">hashCode</span>""",
|
||||
<span class="element-name">hashCode</span>""",
|
||||
"Returns a hash code value for this object. The value is derived "
|
||||
+ "from the hash code of each of the record components.",
|
||||
"""
|
||||
<span class="member-name">equals</span>""",
|
||||
<span class="element-name">equals</span>""",
|
||||
"""
|
||||
Indicates whether some other object is "equal to" this one. The objects are equa\
|
||||
l if the other object is of the same class and if all the record components are \
|
||||
equal. All components in this record are compared with '=='.""",
|
||||
"""
|
||||
<span class="member-name">r1</span>""",
|
||||
<span class="element-name">r1</span>""",
|
||||
"""
|
||||
Returns the value of the <a href="#param-r1"><code>r1</code></a> record component."""
|
||||
);
|
||||
@ -471,26 +471,27 @@ public class TestRecordTypes extends JavadocTester {
|
||||
|
||||
checkOutput("p/R.html", true,
|
||||
"""
|
||||
<pre>public record <span class="type-name-label">R</span>("""
|
||||
<div class="type-signature"><span class="modifiers">public record </span><span c\
|
||||
lass="element-name type-name-label">R</span>("""
|
||||
+ rcAnno
|
||||
+ """
|
||||
int i)
|
||||
extends java.lang.Record</pre>""",
|
||||
<span class="extends-implements">extends java.lang.Record</span></div>""",
|
||||
"<div class=\"member-signature\">"
|
||||
+ fAnno
|
||||
+ """
|
||||
<span class="modifiers">private final</span> <span class="return-type">int<\
|
||||
/span> <span class="member-name">i</span></div>""",
|
||||
/span> <span class="element-name">i</span></div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="member-name">R</span>​<span class="parameters">("""
|
||||
lass="element-name">R</span>​<span class="parameters">("""
|
||||
+ pAnno
|
||||
+ "int i)</span></div>",
|
||||
"<div class=\"member-signature\">"
|
||||
+ mAnno
|
||||
+ """
|
||||
<span class="modifiers">public</span> <span class="return-type">int</span>&\
|
||||
nbsp;<span class="member-name">i</span>()</div>""");
|
||||
nbsp;<span class="element-name">i</span>()</div>""");
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,9 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"public sealed class <span class=\"type-name-label\">A</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -75,7 +77,9 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"public sealed interface <span class=\"type-name-label\">A</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed interface </sp\
|
||||
an><span class="element-name type-name-label">A</span>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -92,10 +96,14 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"public sealed class <span class=\"type-name-label\">A</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>""");
|
||||
|
||||
checkOutput("p/B.html", true,
|
||||
"public non-sealed class <span class=\"type-name-label\">B</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public non-sealed class </span><\
|
||||
span class="element-name type-name-label">B</span>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -112,10 +120,14 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"public sealed interface <span class=\"type-name-label\">A</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed interface </span><\
|
||||
span class="element-name type-name-label">A</span>""");
|
||||
|
||||
checkOutput("p/B.html", true,
|
||||
"public non-sealed interface <span class=\"type-name-label\">B</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public non-sealed interface </span><\
|
||||
span class="element-name type-name-label">B</span>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -132,10 +144,14 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"public sealed class <span class=\"type-name-label\">A</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>""");
|
||||
|
||||
checkOutput("p/B.html", true,
|
||||
"public abstract sealed class <span class=\"type-name-label\">B</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public abstract sealed class\
|
||||
</span><span class="element-name type-name-label">B</span>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -152,10 +168,14 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"public sealed interface <span class=\"type-name-label\">A</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed interface </sp\
|
||||
an><span class="element-name type-name-label">A</span>""");
|
||||
|
||||
checkOutput("p/B.html", true,
|
||||
"public sealed interface <span class=\"type-name-label\">B</span>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed interface </sp\
|
||||
an><span class="element-name type-name-label">B</span>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -173,9 +193,11 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"B.html\" title=\"class in p\">B</a></pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="B.html" title="class in p">B</a></span></div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -195,11 +217,13 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"B.html\" title=\"class in p\">B</a>, "
|
||||
+ "<a href=\"C.html\" title=\"class in p\">C</a>, "
|
||||
+ "<a href=\"D.html\" title=\"class in p\">D</a></pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="B.html" title="class in p">B</a>, <a href\
|
||||
="C.html" title="class in p">C</a>, <a href="D.html" title="class in p">D</a></s\
|
||||
pan></div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -219,11 +243,13 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"B.html\" title=\"class in p\">B</a>, "
|
||||
+ "<a href=\"C.html\" title=\"class in p\">C</a> "
|
||||
+ "<span class=\"permits-note\">(not exhaustive)</span></pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="B.html" title="class in p">B</a>, <a href\
|
||||
="C.html" title="class in p">C</a> <span class="permits-note">(not exhaustive)</\
|
||||
span></span></div>""");
|
||||
}
|
||||
|
||||
// @Test // javac incorrectly rejects the source
|
||||
@ -244,10 +270,13 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"B.html\" title=\"class in p\">B</a>, "
|
||||
+ "<a href=\"C.html\" title=\"class in p\">C</a>, p.D</pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="A.B.html" title="class in p">A.B</a>, <a \
|
||||
href="A.C.html" title="class in p">A.C</a>, <a href="A.D.html" title="class in p\
|
||||
">A.D</a></span></div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -269,11 +298,13 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"B.html\" title=\"class in p\">B</a>, "
|
||||
+ "<a href=\"C.html\" title=\"class in p\">C</a> "
|
||||
+ "<span class=\"permits-note\">(not exhaustive)</span></pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><span\
|
||||
class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="B.html" title="class in p">B</a>, <a href="C.\
|
||||
html" title="class in p">C</a> <span class="permits-note">(not exhaustive)</span></s\
|
||||
pan></div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -294,11 +325,13 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"B.html\" title=\"class in p\">B</a>, "
|
||||
+ "<a href=\"C.html\" title=\"class in p\">C</a>, "
|
||||
+ "<a href=\"D.html\" title=\"class in p\">D</a></pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="B.html" title="class in p">B</a>, <a href\
|
||||
="C.html" title="class in p">C</a>, <a href="D.html" title="class in p">D</a></s\
|
||||
pan></div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -319,10 +352,12 @@ public class TestSealedTypes extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("p/A.html", true,
|
||||
"<pre>public sealed class <span class=\"type-name-label\">A</span>\n"
|
||||
+ "extends java.lang.Object\n"
|
||||
+ "permits <a href=\"A.B.html\" title=\"class in p\">A.B</a>, "
|
||||
+ "<a href=\"A.C.html\" title=\"class in p\">A.C</a>, "
|
||||
+ "<a href=\"A.D.html\" title=\"class in p\">A.D</a></pre>");
|
||||
"""
|
||||
<div class="type-signature"><span class="modifiers">public sealed class </span><\
|
||||
span class="element-name type-name-label">A</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span>
|
||||
<span class="permits">permits <a href="A.B.html" title="class in p">A.B</a>, <a \
|
||||
href="A.C.html" title="class in p">A.C</a>, <a href="A.D.html" title="class in p\
|
||||
">A.D</a></span></div>""");
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ public class TestSerializedFormWithClassFile extends JavadocTester {
|
||||
checkOutput("serialized-form.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">readObject</span>&\
|
||||
lass="return-type">void</span> <span class="element-name">readObject</span>&\
|
||||
#8203;<span class="parameters">(java.io.ObjectInputStream arg0)</span>
|
||||
throws <span class="exceptions">java.lang.ClassNotFoundException,
|
||||
java.io.IOException</span></div>
|
||||
|
@ -352,7 +352,7 @@ public class TestStylesheet extends JavadocTester {
|
||||
"method-summary",
|
||||
// the following provide the ability to optionally override components of the
|
||||
// memberSignature structure
|
||||
"member-name",
|
||||
"name",
|
||||
"modifiers",
|
||||
"packages",
|
||||
"return-type",
|
||||
|
@ -93,7 +93,7 @@ public class TestSummaryTag extends JavadocTester {
|
||||
<section class="detail" id="m3()">
|
||||
<h3>m3</h3>
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="return-type">void</span> <span class="member-name">m3</span>()</div>
|
||||
lass="return-type">void</span> <span class="element-name">m3</span>()</div>
|
||||
<div class="block">First sentence some text maybe second sentence.</div>
|
||||
</section>
|
||||
"""
|
||||
|
@ -76,7 +76,7 @@
|
||||
"""
|
||||
<div class="member-signature"><span class="type-parameters"><T extends java\
|
||||
.lang.Throwable></span> <span class="return-type">void</span> <sp\
|
||||
an class="member-name">m</span>()
|
||||
an class="element-name">m</span>()
|
||||
throws <span class="exceptions">T,
|
||||
java.lang.Exception</span></div>
|
||||
""",
|
||||
|
@ -63,7 +63,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
a> java.lang.CharSequence, <a href="ClassExtA.html" title="annotation in typeann\
|
||||
os">@ClassExtA</a> <a href="ParameterizedInterface.html" title="interface in typ\
|
||||
eannos">ParameterizedInterface</a><<a href="ClassExtB.html" title="annotation\
|
||||
in typeannos">@ClassExtB</a> java.lang.String></pre>""");
|
||||
in typeannos">@ClassExtB</a> java.lang.String></span></div>""");
|
||||
|
||||
checkOutput("typeannos/MyInterface.html", true,
|
||||
"""
|
||||
@ -71,48 +71,49 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<a href="ParameterizedInterface.html" title="interface in typeannos">Parameteriz\
|
||||
edInterface</a><<a href="ClassExtA.html" title="annotation in typeannos">@Cla\
|
||||
ssExtA</a> java.lang.String>, <a href="ClassExtB.html" title="annotation in t\
|
||||
ypeannos">@ClassExtB</a> java.lang.CharSequence</pre>""");
|
||||
ypeannos">@ClassExtB</a> java.lang.CharSequence</span></div>""");
|
||||
|
||||
// Test for type annotations on Class Parameters (ClassParameters.java).
|
||||
checkOutput("typeannos/ExtendsBound.html", true,
|
||||
"""
|
||||
class <span class="type-name-label">ExtendsBound<K extends <a href="ClassPara\
|
||||
mA.html" title="annotation in typeannos">@ClassParamA</a> java.lang.String></\
|
||||
span>""");
|
||||
class </span><span class="element-name type-name-label">ExtendsBound<K extend\
|
||||
s <a href="ClassParamA.html" title="annotation in typeannos">@ClassParamA</a> ja\
|
||||
va.lang.String></span>""");
|
||||
|
||||
checkOutput("typeannos/ExtendsGeneric.html", true,
|
||||
"""
|
||||
<pre>class <span class="type-name-label">ExtendsGeneric<K extends <a href="Cl\
|
||||
assParamA.html" title="annotation in typeannos">@ClassParamA</a> <a href="Unanno\
|
||||
tated.html" title="class in typeannos">Unannotated</a><<a href="ClassParamB.h\
|
||||
tml" title="annotation in typeannos">@ClassParamB</a> java.lang.String>></\
|
||||
span>""");
|
||||
<div class="type-signature"><span class="modifiers">class </span><span class="el\
|
||||
ement-name type-name-label">ExtendsGeneric<K extends <a href="ClassParamA.htm\
|
||||
l" title="annotation in typeannos">@ClassParamA</a> <a href="Unannotated.html" t\
|
||||
itle="class in typeannos">Unannotated</a><<a href="ClassParamB.html" title="a\
|
||||
nnotation in typeannos">@ClassParamB</a> java.lang.String>></span>""");
|
||||
|
||||
checkOutput("typeannos/TwoBounds.html", true,
|
||||
"""
|
||||
<pre>class <span class="type-name-label">TwoBounds<K extends <a href="ClassPa\
|
||||
ramA.html" title="annotation in typeannos">@ClassParamA</a> java.lang.String,\
|
||||
203;V extends <a href="ClassParamB.html" title="annotation in typeannos">@ClassP\
|
||||
aramB</a> java.lang.String></span>""");
|
||||
<div class="type-signature"><span class="modifiers">class </span><span class="el\
|
||||
ement-name type-name-label">TwoBounds<K extends <a href="ClassParamA.html" ti\
|
||||
tle="annotation in typeannos">@ClassParamA</a> java.lang.String,​V extends\
|
||||
<a href="ClassParamB.html" title="annotation in typeannos">@ClassParamB</a> jav\
|
||||
a.lang.String></span>""");
|
||||
|
||||
checkOutput("typeannos/Complex1.html", true,
|
||||
"""
|
||||
class <span class="type-name-label">Complex1<K extends <a href="ClassParamA.h\
|
||||
tml" title="annotation in typeannos">@ClassParamA</a> java.lang.String & jav\
|
||||
a.lang.Runnable></span>""");
|
||||
class </span><span class="element-name type-name-label">Complex1<K extends <a\
|
||||
href="ClassParamA.html" title="annotation in typeannos">@ClassParamA</a> java.l\
|
||||
ang.String & java.lang.Runnable></span>""");
|
||||
|
||||
checkOutput("typeannos/Complex2.html", true,
|
||||
"""
|
||||
class <span class="type-name-label">Complex2<K extends java.lang.String &\
|
||||
<a href="ClassParamB.html" title="annotation in typeannos">@ClassParamB</a> jav\
|
||||
a.lang.Runnable></span>""");
|
||||
class </span><span class="element-name type-name-label">Complex2<K extends ja\
|
||||
va.lang.String & <a href="ClassParamB.html" title="annotation in typeannos">\
|
||||
@ClassParamB</a> java.lang.Runnable></span>""");
|
||||
|
||||
checkOutput("typeannos/ComplexBoth.html", true,
|
||||
"""
|
||||
class <span class="type-name-label">ComplexBoth<K extends <a href="ClassParam\
|
||||
A.html" title="annotation in typeannos">@ClassParamA</a> java.lang.String & \
|
||||
<a href="ClassParamA.html" title="annotation in typeannos">@ClassParamA</a> java\
|
||||
.lang.Runnable></span>""");
|
||||
class </span><span class="element-name type-name-label">ComplexBoth<K extends\
|
||||
<a href="ClassParamA.html" title="annotation in typeannos">@ClassParamA</a> jav\
|
||||
a.lang.String & <a href="ClassParamA.html" title="annotation in typeannos">@\
|
||||
ClassParamA</a> java.lang.Runnable></span>""");
|
||||
|
||||
// Test for type annotations on fields (Fields.java).
|
||||
checkOutput("typeannos/DefaultScope.html", true,
|
||||
@ -121,18 +122,18 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
tml" title="class in typeannos">Parameterized</a><<a href="FldA.html" title="\
|
||||
annotation in typeannos">@FldA</a> java.lang.String,​<a href="FldB.html" t\
|
||||
itle="annotation in typeannos">@FldB</a> java.lang.String></span> <span \
|
||||
class="member-name">bothTypeArgs</span></div>""",
|
||||
class="element-name">bothTypeArgs</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="FldA.html" titl\
|
||||
e="annotation in typeannos">@FldA</a> java.lang.String <a href="FldB.html" title\
|
||||
="annotation in typeannos">@FldB</a> []</span> <span class="member-name">ar\
|
||||
ray1Deep</span></div>""",
|
||||
="annotation in typeannos">@FldB</a> []</span> <span class="element-name">a\
|
||||
rray1Deep</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">java.lang.String <a href\
|
||||
="FldB.html" title="annotation in typeannos">@FldB</a> [][]</span> <span cl\
|
||||
ass="member-name">array2SecondOld</span></div>""",
|
||||
ass="element-name">array2SecondOld</span></div>""",
|
||||
|
||||
// When JDK-8068737, we should change the order
|
||||
"""
|
||||
@ -141,7 +142,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
="annotation in typeannos">@FldC</a> <a href="FldB.html" title="annotation in ty\
|
||||
peannos">@FldB</a> [] <a href="FldC.html" title="annotation in typeannos">@FldC<\
|
||||
/a> <a href="FldA.html" title="annotation in typeannos">@FldA</a> []</span> \
|
||||
;<span class="member-name">array2Deep</span></div>""");
|
||||
;<span class="element-name">array2Deep</span></div>""");
|
||||
|
||||
checkOutput("typeannos/ModifiedScoped.html", true,
|
||||
"""
|
||||
@ -152,14 +153,14 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
;<a href="FldA.html" title="annotation in typeannos">@FldA</a> java.lang.String,\
|
||||
​<a href="FldB.html" title="annotation in typeannos">@FldB</a> java.lang.S\
|
||||
tring>,​<a href="FldB.html" title="annotation in typeannos">@FldB</a> j\
|
||||
ava.lang.String></span> <span class="member-name">nestedParameterized</s\
|
||||
pan></div>""",
|
||||
ava.lang.String></span> <span class="element-name">nestedParameterized</\
|
||||
span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type"><a href="FldA.html" title="annotation in typeannos">@Fl\
|
||||
dA</a> java.lang.String[][]</span> <span class="member-name">array2</span><\
|
||||
/div>""");
|
||||
dA</a> java.lang.String[][]</span> <span class="element-name">array2</span>\
|
||||
</div>""");
|
||||
|
||||
// Test for type annotations on method return types (MethodReturnType.java).
|
||||
checkOutput("typeannos/MtdDefaultScope.html", true,
|
||||
@ -167,20 +168,20 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
||||
lass="type-parameters"><T></span> <span class="return-type"><a href="\
|
||||
MRtnA.html" title="annotation in typeannos">@MRtnA</a> java.lang.String</span>&n\
|
||||
bsp;<span class="member-name">method</span>()</div>""",
|
||||
bsp;<span class="element-name">method</span>()</div>""",
|
||||
|
||||
// When JDK-8068737 is fixed, we should change the order
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MRtnA.html" tit\
|
||||
le="annotation in typeannos">@MRtnA</a> java.lang.String <a href="MRtnB.html" ti\
|
||||
tle="annotation in typeannos">@MRtnB</a> [] <a href="MRtnA.html" title="annotati\
|
||||
on in typeannos">@MRtnA</a> []</span> <span class="member-name">array2Deep<\
|
||||
/span>()</div>""",
|
||||
on in typeannos">@MRtnA</a> []</span> <span class="element-name">array2Deep\
|
||||
</span>()</div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MRtnA.html" tit\
|
||||
le="annotation in typeannos">@MRtnA</a> java.lang.String[][]</span> <span c\
|
||||
lass="member-name">array2</span>()</div>""");
|
||||
lass="element-name">array2</span>()</div>""");
|
||||
|
||||
checkOutput("typeannos/MtdModifiedScoped.html", true,
|
||||
"""
|
||||
@ -191,16 +192,16 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
terized</a><<a href="MRtnA.html" title="annotation in typeannos">@MRtnA</a> j\
|
||||
ava.lang.String,​<a href="MRtnB.html" title="annotation in typeannos">@MRt\
|
||||
nB</a> java.lang.String>,​<a href="MRtnB.html" title="annotation in typ\
|
||||
eannos">@MRtnB</a> java.lang.String></span> <span class="member-name">ne\
|
||||
stedMtdParameterized</span>()</div>""");
|
||||
eannos">@MRtnB</a> java.lang.String></span> <span class="element-name">n\
|
||||
estedMtdParameterized</span>()</div>""");
|
||||
|
||||
// Test for type annotations on method type parameters (MethodTypeParameters.java).
|
||||
checkOutput("typeannos/UnscopedUnmodified.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="type-parameters"><K extends <a hre\
|
||||
f="MTyParamA.html" title="annotation in typeannos">@MTyParamA</a> java.lang.Stri\
|
||||
ng></span> <span class="return-type">void</span> <span class="membe\
|
||||
r-name">methodExtends</span>()</div>""",
|
||||
ng></span> <span class="return-type">void</span> <span class="eleme\
|
||||
nt-name">methodExtends</span>()</div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="type-parameters-long"><K extends <\
|
||||
@ -208,14 +209,14 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
MtdTyParameterized.html" title="class in typeannos">MtdTyParameterized</a><<a\
|
||||
href="MTyParamB.html" title="annotation in typeannos">@MTyParamB</a> java.lang.\
|
||||
String>></span>
|
||||
<span class="return-type">void</span> <span class="member-name">nestedExtends</span>()</div>""");
|
||||
<span class="return-type">void</span> <span class="element-name">nestedExtends</span>()</div>""");
|
||||
|
||||
checkOutput("typeannos/PublicModifiedMethods.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="type-parameters"><K extends <a href="MTyParamA.html" title="annot\
|
||||
ation in typeannos">@MTyParamA</a> java.lang.String></span>
|
||||
<span class="return-type">void</span> <span class="member-name">methodExtends</span>()</div>""",
|
||||
<span class="return-type">void</span> <span class="element-name">methodExtends</span>()</div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
@ -225,45 +226,45 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
> <a href="MtdTyParameterized.html" title="class in typeannos">MtdTyParameterize\
|
||||
d</a><<a href="MTyParamB.html" title="annotation in typeannos">@MTyParamB</a>\
|
||||
java.lang.String>></span>
|
||||
<span class="return-type">void</span> <span class="member-name">dual</span>()</div>""");
|
||||
<span class="return-type">void</span> <span class="element-name">dual</span>()</div>""");
|
||||
|
||||
// Test for type annotations on parameters (Parameters.java).
|
||||
checkOutput("typeannos/Parameters.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">unannotated</span>​<span class="parameters">(<a href="P\
|
||||
araParameterized.html" title="class in typeannos">ParaParameterized</a><java.\
|
||||
lang.String,​java.lang.String> a)</span></div>""",
|
||||
lass="element-name">unannotated</span>​<span class="parameters">(<a href="\
|
||||
ParaParameterized.html" title="class in typeannos">ParaParameterized</a><java\
|
||||
.lang.String,​java.lang.String> a)</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">nestedParaParameterized</span>​<span class="parameters\
|
||||
">(<a href="ParaParameterized.html" title="class in typeannos">ParaParameterized<\
|
||||
/a><<a href="ParamA.html" title="annotation in typeannos">@ParamA</a> <a href\
|
||||
="ParaParameterized.html" title="class in typeannos">ParaParameterized</a><<a\
|
||||
href="ParamA.html" title="annotation in typeannos">@ParamA</a> java.lang.String\
|
||||
,​<a href="ParamB.html" title="annotation in typeannos">@ParamB</a> java.l\
|
||||
ang.String>,​<a href="ParamB.html" title="annotation in typeannos">@Par\
|
||||
amB</a> java.lang.String> a)</span></div>""",
|
||||
lass="element-name">nestedParaParameterized</span>​<span class="parameters\
|
||||
">(<a href="ParaParameterized.html" title="class in typeannos">ParaParameterized\
|
||||
</a><<a href="ParamA.html" title="annotation in typeannos">@ParamA</a> <a hre\
|
||||
f="ParaParameterized.html" title="class in typeannos">ParaParameterized</a><<\
|
||||
a href="ParamA.html" title="annotation in typeannos">@ParamA</a> java.lang.Strin\
|
||||
g,​<a href="ParamB.html" title="annotation in typeannos">@ParamB</a> java.\
|
||||
lang.String>,​<a href="ParamB.html" title="annotation in typeannos">@Pa\
|
||||
ramB</a> java.lang.String> a)</span></div>""",
|
||||
|
||||
// When JDK-8068737 is fixed, we should change the order
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">array2Deep</span>​<span class="parameters">(<a href="Pa\
|
||||
ramA.html" title="annotation in typeannos">@ParamA</a> java.lang.String <a href=\
|
||||
"ParamB.html" title="annotation in typeannos">@ParamB</a> [] <a href="ParamA.htm\
|
||||
l" title="annotation in typeannos">@ParamA</a> [] a)</span></div>""");
|
||||
lass="element-name">array2Deep</span>​<span class="parameters">(<a href="P\
|
||||
aramA.html" title="annotation in typeannos">@ParamA</a> java.lang.String <a href\
|
||||
="ParamB.html" title="annotation in typeannos">@ParamB</a> [] <a href="ParamA.ht\
|
||||
ml" title="annotation in typeannos">@ParamA</a> [] a)</span></div>""");
|
||||
|
||||
// Test for type annotations on throws (Throws.java).
|
||||
checkOutput("typeannos/ThrDefaultUnmodified.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span class="member-name">oneException</span>()
|
||||
<div class="member-signature"><span class="return-type">void</span> <span class="element-name">oneException</span>()
|
||||
throws <span class="exceptions"><a href="ThrA.html" title="annotation\
|
||||
in typeannos">@ThrA</a> java.lang.Exception</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">twoExceptions</span>()
|
||||
lass="element-name">twoExceptions</span>()
|
||||
throws <span class="exceptions"><a href="ThrA.html" title="annotatio\
|
||||
n in typeannos">@ThrA</a> java.lang.RuntimeException,
|
||||
<a href="ThrA.html" title="annotation in typeannos">@ThrA</a> java.lang.Exception</span></div>""");
|
||||
@ -271,28 +272,28 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
checkOutput("typeannos/ThrPublicModified.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">void</span> <span class="member-name">oneException\
|
||||
</span>​<span class="parameters">(java.lang.String a)</span>
|
||||
span class="return-type">void</span> <span class="element-name">oneException</span>\
|
||||
​<span class="parameters">(java.lang.String a)</span>
|
||||
throws <span class="exceptions"><a href="ThrA.html" titl\
|
||||
e="annotation in typeannos">@ThrA</a> java.lang.Exception</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">void</span> <span class="member-name">twoException\
|
||||
s</span>​<span class="parameters">(java.lang.String a)</span>
|
||||
span class="return-type">void</span> <span class="element-name">twoExceptions</span\
|
||||
>​<span class="parameters">(java.lang.String a)</span>
|
||||
throws <span class="exceptions"><a href="ThrA.html" tit\
|
||||
le="annotation in typeannos">@ThrA</a> java.lang.RuntimeException,
|
||||
<a href="ThrA.html" title="annotation in typeannos">@ThrA</a> java.lang.Exception</span></div>""");
|
||||
|
||||
checkOutput("typeannos/ThrWithValue.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span class="member-name">oneException</span>()
|
||||
<div class="member-signature"><span class="return-type">void</span> <span class="element-name">oneException</span>()
|
||||
throws <span class="exceptions"><a href="ThrB.html" title="annotation\
|
||||
in typeannos">@ThrB</a>("m") java.lang.Exception</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">twoExceptions</span>()
|
||||
lass="element-name">twoExceptions</span>()
|
||||
throws <span class="exceptions"><a href="ThrB.html" title="annotatio\
|
||||
n in typeannos">@ThrB</a>("m") java.lang.RuntimeException,
|
||||
<a href="ThrA.html" title="annotation in typeannos">@ThrA</a> java.lang.Exception</span></div>""");
|
||||
@ -304,104 +305,104 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<a href="TyParaA.html" title="annotation in typeannos">@TyParaA</a> V extends <a\
|
||||
href="TyParaA.html" title="annotation in typeannos">@TyParaA</a> java.lang.Stri\
|
||||
ng></span>
|
||||
<span class="return-type">void</span> <span class="member-name">secondAnnotated</span>()</div>"""
|
||||
<span class="return-type">void</span> <span class="element-name">secondAnnotated</span>()</div>"""
|
||||
);
|
||||
|
||||
// Test for type annotations on wildcard type (Wildcards.java).
|
||||
checkOutput("typeannos/BoundTest.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">wcExtends</span>​<span class="parameters">(<a href="MyL\
|
||||
ist.html" title="class in typeannos">MyList</a><? extends <a href="WldA.html"\
|
||||
title="annotation in typeannos">@WldA</a> java.lang.String> l)</span></\
|
||||
div>""",
|
||||
lass="element-name">wcExtends</span>​<span class="parameters">(<a href="My\
|
||||
List.html" title="class in typeannos">MyList</a><? extends <a href="WldA.html\
|
||||
" title="annotation in typeannos">@WldA</a> java.lang.String> l)</span><\
|
||||
/div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MyList.html" ti\
|
||||
tle="class in typeannos">MyList</a><? super <a href="WldA.html" title="annota\
|
||||
tion in typeannos">@WldA</a> java.lang.String></span> <span class="membe\
|
||||
r-name">returnWcSuper</span>()</div>""");
|
||||
tion in typeannos">@WldA</a> java.lang.String></span> <span class="element-name"\
|
||||
>returnWcSuper</span>()</div>""");
|
||||
|
||||
checkOutput("typeannos/BoundWithValue.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">wcSuper</span>​<span class="parameters">(<a href="MyLis\
|
||||
t.html" title="class in typeannos">MyList</a><? super <a href="WldB.html" tit\
|
||||
le="annotation in typeannos">@WldB</a>("m") java.lang.String> l)</span><\
|
||||
/div>""",
|
||||
lass="element-name">wcSuper</span>​<span class="parameters">(<a href="MyLi\
|
||||
st.html" title="class in typeannos">MyList</a><? super <a href="WldB.html" ti\
|
||||
tle="annotation in typeannos">@WldB</a>("m") java.lang.String> l)</span>\
|
||||
</div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MyList.html" ti\
|
||||
tle="class in typeannos">MyList</a><? extends <a href="WldB.html" title="anno\
|
||||
tation in typeannos">@WldB</a>("m") java.lang.String></span> <span class\
|
||||
="member-name">returnWcExtends</span>()</div>""");
|
||||
="element-name">returnWcExtends</span>()</div>""");
|
||||
|
||||
checkOutput("typeannos/SelfTest.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MyList.html" ti\
|
||||
tle="class in typeannos">MyList</a><<a href="WldA.html" title="annotation in \
|
||||
typeannos">@WldA</a> ?></span> <span class="member-name">returnWcExtends\
|
||||
</span>()</div>""",
|
||||
typeannos">@WldA</a> ?></span> <span class="element-name">returnWcExtends</span>\
|
||||
()</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MyList.html" ti\
|
||||
tle="class in typeannos">MyList</a><<a href="WldA.html" title="annotation in \
|
||||
typeannos">@WldA</a> ? extends <a href="WldA.html" title="annotation in typeanno\
|
||||
s">@WldA</a> <a href="MyList.html" title="class in typeannos">MyList</a><<a h\
|
||||
ref="WldB.html" title="annotation in typeannos">@WldB</a>("m") ?>></span>&\
|
||||
nbsp;<span class="member-name">complex</span>()</div>""");
|
||||
nbsp;<span class="element-name">complex</span>()</div>""");
|
||||
|
||||
checkOutput("typeannos/SelfWithValue.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MyList.html" ti\
|
||||
tle="class in typeannos">MyList</a><<a href="WldB.html" title="annotation in \
|
||||
typeannos">@WldB</a>("m") ?></span> <span class="member-name">returnWcEx\
|
||||
tends</span>()</div>""",
|
||||
typeannos">@WldB</a>("m") ?></span> <span class="element-name">returnWcExtends</\
|
||||
span>()</div>""",
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="MyList.html" ti\
|
||||
tle="class in typeannos">MyList</a><<a href="WldB.html" title="annotation in \
|
||||
typeannos">@WldB</a>("m") ? extends <a href="MyList.html" title="class in typean\
|
||||
nos">MyList</a><<a href="WldB.html" title="annotation in typeannos">@WldB</a>\
|
||||
("m") ? super java.lang.String>></span> <span class="member-name">com\
|
||||
plex</span>()</div>""");
|
||||
("m") ? super java.lang.String>></span> <span class="element-name">complex</s\
|
||||
pan>()</div>""");
|
||||
|
||||
|
||||
// Test for receiver annotations (Receivers.java).
|
||||
checkOutput("typeannos/DefaultUnmodified.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">withException</span>​<span class="parameters">(<a href=\
|
||||
"RcvrA.html" title="annotation in typeannos">@RcvrA</a> DefaultUnmodified&n\
|
||||
bsp;this)</span>
|
||||
lass="element-name">withException</span>​<span class="parameters">(<a href\
|
||||
="RcvrA.html" title="annotation in typeannos">@RcvrA</a> DefaultUnmodified&\
|
||||
nbsp;this)</span>
|
||||
throws <span class="exceptions">java.lang.Exception</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">java.lang.String</span>&\
|
||||
nbsp;<span class="member-name">nonVoid</span>​<span class="parameters">(<a\
|
||||
href="RcvrA.html" title="annotation in typeannos">@RcvrA</a> <a href="RcvrB.htm\
|
||||
l" title="annotation in typeannos">@RcvrB</a>("m") DefaultUnmodified t\
|
||||
his)</span></div>""",
|
||||
nbsp;<span class="element-name">nonVoid</span>​<span class="parameters">(<a href="\
|
||||
RcvrA.html" title="annotation in typeannos">@RcvrA</a> <a href="RcvrB.html" titl\
|
||||
e="annotation in typeannos">@RcvrB</a>("m") DefaultUnmodified this)</s\
|
||||
pan></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="type-parameters"><T extends java.l\
|
||||
ang.Runnable></span> <span class="return-type">void</span> <span cl\
|
||||
ass="member-name">accept</span>​<span class="parameters">(<a href="RcvrA.h\
|
||||
tml" title="annotation in typeannos">@RcvrA</a> DefaultUnmodified this\
|
||||
,
|
||||
ass="element-name">accept</span>​<span class="parameters">(<a href="RcvrA.\
|
||||
html" title="annotation in typeannos">@RcvrA</a> DefaultUnmodified thi\
|
||||
s,
|
||||
T r)</span>
|
||||
throws <span class="exceptions">java.lang.Exception</span></div>""");
|
||||
|
||||
checkOutput("typeannos/PublicModified.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="return-type">java.lang.String</span> <span class="member-name">\
|
||||
nonVoid</span>​<span class="parameters">(<a href="RcvrA.html" title="annot\
|
||||
ation in typeannos">@RcvrA</a> PublicModified this)</span></div>""",
|
||||
span class="return-type">java.lang.String</span> <span class="element-name">nonVoid\
|
||||
</span>​<span class="parameters">(<a href="RcvrA.html" title="annotation i\
|
||||
n typeannos">@RcvrA</a> PublicModified this)</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="modifiers">public final</span> <\
|
||||
span class="type-parameters"><T extends java.lang.Runnable></span> <s\
|
||||
pan class="return-type">void</span> <span class="member-name">accept</span>\
|
||||
​<span class="parameters">(<a href="RcvrA.html" title="annotation in typea\
|
||||
pan class="return-type">void</span> <span class="element-name">accept</span>​\
|
||||
<span class="parameters">(<a href="RcvrA.html" title="annotation in typea\
|
||||
nnos">@RcvrA</a> PublicModified this,
|
||||
T r)</span>
|
||||
throws <span class="exceptions">java.lang.Exception</span></div>""");
|
||||
@ -410,42 +411,44 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
"""
|
||||
<div class="member-signature"><span class="type-parameters"><T extends java.l\
|
||||
ang.Runnable></span> <span class="return-type">void</span> <span cl\
|
||||
ass="member-name">accept</span>​<span class="parameters">(<a href="RcvrB.h\
|
||||
tml" title="annotation in typeannos">@RcvrB</a>("m") WithValue this,
|
||||
ass="element-name">accept</span>​<span class="parameters">(<a href="RcvrB.\
|
||||
html" title="annotation in typeannos">@RcvrB</a>("m") WithValue this,
|
||||
T r)</span>
|
||||
throws <span class="exceptions">java.lang.Exception</span></div>""");
|
||||
|
||||
checkOutput("typeannos/WithFinal.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">java.lang.String</span>&\
|
||||
nbsp;<span class="member-name">nonVoid</span>​<span class="parameters">(<a\
|
||||
href="RcvrB.html" title="annotation in typeannos">@RcvrB</a>("m") <a href="With\
|
||||
Final.html" title="class in typeannos">WithFinal</a> afield)</span></div>""");
|
||||
nbsp;<span class="element-name">nonVoid</span>​<span class="parameters">(<a href="\
|
||||
RcvrB.html" title="annotation in typeannos">@RcvrB</a>("m") <a href="WithFinal.h\
|
||||
tml" title="class in typeannos">WithFinal</a> afield)</span></div>""");
|
||||
|
||||
checkOutput("typeannos/WithBody.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">field</span>​<span class="parameters">(<a href="RcvrA.h\
|
||||
tml" title="annotation in typeannos">@RcvrA</a> WithBody this)</span><\
|
||||
/div>""");
|
||||
lass="element-name">field</span>​<span class="parameters">(<a href="RcvrA.\
|
||||
html" title="annotation in typeannos">@RcvrA</a> WithBody this)</span>\
|
||||
</div>""");
|
||||
|
||||
checkOutput("typeannos/Generic2.html", true,
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">void</span> <span c\
|
||||
lass="member-name">test2</span>​<span class="parameters">(<a href="RcvrA.h\
|
||||
tml" title="annotation in typeannos">@RcvrA</a> Generic2<X> this\
|
||||
)</span></div>""");
|
||||
lass="element-name">test2</span>​<span class="parameters">(<a href="RcvrA.\
|
||||
html" title="annotation in typeannos">@RcvrA</a> Generic2<X> thi\
|
||||
s)</span></div>""");
|
||||
|
||||
|
||||
// Test for repeated type annotations (RepeatedAnnotations.java).
|
||||
checkOutput("typeannos/RepeatingAtClassLevel.html", true,
|
||||
"""
|
||||
<pre><a href="RepTypeA.html" title="annotation in typeannos">@RepTypeA</a> <a hr\
|
||||
ef="RepTypeA.html" title="annotation in typeannos">@RepTypeA</a>
|
||||
<div class="type-signature"><span class="annotations"><a href="RepTypeA.html" ti\
|
||||
tle="annotation in typeannos">@RepTypeA</a> <a href="RepTypeA.html" title="annot\
|
||||
ation in typeannos">@RepTypeA</a>
|
||||
<a href="RepTypeB.html" title="annotation in typeannos">@RepTypeB</a> <a href="R\
|
||||
epTypeB.html" title="annotation in typeannos">@RepTypeB</a>
|
||||
class <span class="type-name-label">RepeatingAtClassLevel</span>
|
||||
extends java.lang.Object</pre>""");
|
||||
</span><span class="modifiers">class </span><span class="element-name type-name-\
|
||||
label">RepeatingAtClassLevel</span>
|
||||
<span class="extends-implements">extends java.lang.Object</span></div>""");
|
||||
|
||||
// @ignore 8146008
|
||||
// checkOutput("typeannos/RepeatingAtClassLevel2.html", true,
|
||||
@ -476,7 +479,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<a href="RepConstructorB.html" title="annotation in typeannos">@RepConstructorB<\
|
||||
/a> <a href="RepConstructorB.html" title="annotation in typeannos">@RepConstruct\
|
||||
orB</a>
|
||||
</span><span class="member-name">RepeatingOnConstructor</span>()</div>""",
|
||||
</span><span class="element-name">RepeatingOnConstructor</span>()</div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations"><a href="RepConstructorA\
|
||||
@ -485,7 +488,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<a href="RepConstructorB.html" title="annotation in typeannos">@RepConstructorB<\
|
||||
/a> <a href="RepConstructorB.html" title="annotation in typeannos">@RepConstruct\
|
||||
orB</a>
|
||||
</span><span class="member-name">RepeatingOnConstructor</span>​<span class="parameters">(int i,
|
||||
</span><span class="element-name">RepeatingOnConstructor</span>​<span class="parameters">(int i,
|
||||
int j)</span></div>""",
|
||||
|
||||
"""
|
||||
@ -495,17 +498,17 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<a href="RepAllContextsB.html" title="annotation in typeannos">@RepAllContextsB<\
|
||||
/a> <a href="RepAllContextsB.html" title="annotation in typeannos">@RepAllContex\
|
||||
tsB</a>
|
||||
</span><span class="member-name">RepeatingOnConstructor</span>​<span class="parameters">(int i,
|
||||
</span><span class="element-name">RepeatingOnConstructor</span>​<span class="parameters">(int i,
|
||||
int j,
|
||||
int k)</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="member-name">RepeatingOnConstructor</\
|
||||
span>​<span class="parameters">(<a href="RepParameterA.html" title="annota\
|
||||
tion in typeannos">@RepParameterA</a> <a href="RepParameterA.html" title="annota\
|
||||
tion in typeannos">@RepParameterA</a> <a href="RepParameterB.html" title="annota\
|
||||
tion in typeannos">@RepParameterB</a> <a href="RepParameterB.html" title="annota\
|
||||
tion in typeannos">@RepParameterB</a>
|
||||
<div class="member-signature"><span class="element-name">RepeatingOnConstructor</span>&#\
|
||||
8203;<span class="parameters">(<a href="RepParameterA.html" title="annotation in\
|
||||
typeannos">@RepParameterA</a> <a href="RepParameterA.html" title="annotation in\
|
||||
typeannos">@RepParameterA</a> <a href="RepParameterB.html" title="annotation in\
|
||||
typeannos">@RepParameterB</a> <a href="RepParameterB.html" title="annotation in\
|
||||
typeannos">@RepParameterB</a>
|
||||
java.lang.String parameter,
|
||||
<a href="RepParameterA.html" title="annotation in typeannos">@RepParameterA</a> \
|
||||
<a href="RepParameterA.html" title="annotation in typeannos">@RepParameterA</a> \
|
||||
@ -593,9 +596,13 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#sa">sa</a></span></code></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations"><a href="RepFieldA.html" title="annotation in typeannos">@RepFieldA</a> <a href="RepFieldA.html" title="annotation in typeannos">@RepFieldA</a>
|
||||
<a href="RepFieldB.html" title="annotation in typeannos">@RepFieldB</a> <a href="RepFieldB.html" title="annotation in typeannos">@RepFieldB</a>
|
||||
</span><span class="return-type">java.lang.Integer</span> <span class="member-name">i1</span></div>""",
|
||||
<div class="member-signature"><span class="annotations"><a href="RepFieldA.html"\
|
||||
title="annotation in typeannos">@RepFieldA</a> <a href="RepFieldA.html" title="\
|
||||
annotation in typeannos">@RepFieldA</a>
|
||||
<a href="RepFieldB.html" title="annotation in typeannos">@RepFieldB</a> <a href=\
|
||||
"RepFieldB.html" title="annotation in typeannos">@RepFieldB</a>
|
||||
</span><span class="return-type">java.lang.Integer</span> <span class="elem\
|
||||
ent-name">i1</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type"><a href="RepTypeUseA.htm\
|
||||
@ -603,7 +610,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
itle="annotation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" title\
|
||||
="annotation in typeannos">@RepTypeUseB</a> <a href="RepTypeUseB.html" title="an\
|
||||
notation in typeannos">@RepTypeUseB</a> java.lang.Integer</span> <span clas\
|
||||
s="member-name">i2</span></div>""",
|
||||
s="element-name">i2</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="annotations"><a href="RepFieldA.html"\
|
||||
@ -615,7 +622,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
typeannos">@RepTypeUseA</a> <a href="RepTypeUseA.html" title="annotation in typ\
|
||||
eannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" title="annotation in typeann\
|
||||
os">@RepTypeUseB</a> <a href="RepTypeUseB.html" title="annotation in typeannos">\
|
||||
@RepTypeUseB</a> java.lang.Integer</span> <span class="member-name">i3</spa\
|
||||
@RepTypeUseB</a> java.lang.Integer</span> <span class="element-name">i3</spa\
|
||||
n></div>""",
|
||||
|
||||
"""
|
||||
@ -630,7 +637,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
ation in typeannos">@RepAllContextsA</a> <a href="RepAllContextsB.html" title="a\
|
||||
nnotation in typeannos">@RepAllContextsB</a> <a href="RepAllContextsB.html" titl\
|
||||
e="annotation in typeannos">@RepAllContextsB</a> java.lang.Integer</span> <\
|
||||
span class="member-name">i4</span></div>""",
|
||||
span class="element-name">i4</span></div>""",
|
||||
|
||||
"""
|
||||
<div class="member-signature"><span class="return-type">java.lang.String <a href\
|
||||
@ -641,8 +648,8 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
.html" title="annotation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseA.htm\
|
||||
l" title="annotation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" t\
|
||||
itle="annotation in typeannos">@RepTypeUseB</a> <a href="RepTypeUseB.html" title\
|
||||
="annotation in typeannos">@RepTypeUseB</a> []</span> <span class="member-n\
|
||||
ame">sa</span></div>""");
|
||||
="annotation in typeannos">@RepTypeUseB</a> []</span> <span class="element-\
|
||||
name">sa</span></div>""");
|
||||
|
||||
checkOutput("typeannos/RepeatingOnMethod.html", true,
|
||||
"""
|
||||
@ -695,14 +702,14 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
f="RepMethodA.html" title="annotation in typeannos">@RepMethodA</a>
|
||||
<a href="RepMethodB.html" title="annotation in typeannos">@RepMethodB</a> <a hre\
|
||||
f="RepMethodB.html" title="annotation in typeannos">@RepMethodB</a>
|
||||
</span><span class="return-type">java.lang.String</span> <span class="member-name">test1</span>()""",
|
||||
</span><span class="return-type">java.lang.String</span> <span class="element-name">test1</span>()""",
|
||||
|
||||
"""
|
||||
<a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a> <a h\
|
||||
ref="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a> <a href=\
|
||||
"RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> <a href="Rep\
|
||||
TypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> java.lang.String\
|
||||
</span> <span class="member-name">test2</span>()""",
|
||||
</span> <span class="element-name">test2</span>()""",
|
||||
|
||||
"""
|
||||
<a href="RepMethodA.html" title="annotation in typeannos">@RepMethodA</a> <a hre\
|
||||
@ -713,7 +720,7 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
typeannos">@RepTypeUseA</a> <a href="RepTypeUseA.html" title="annotation in typ\
|
||||
eannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" title="annotation in typeann\
|
||||
os">@RepTypeUseB</a> <a href="RepTypeUseB.html" title="annotation in typeannos">\
|
||||
@RepTypeUseB</a> java.lang.String</span> <span class="member-name">test3</s\
|
||||
@RepTypeUseB</a> java.lang.String</span> <span class="element-name">test3</s\
|
||||
pan>()""",
|
||||
|
||||
"""
|
||||
@ -728,10 +735,10 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
ation in typeannos">@RepAllContextsA</a> <a href="RepAllContextsB.html" title="a\
|
||||
nnotation in typeannos">@RepAllContextsB</a> <a href="RepAllContextsB.html" titl\
|
||||
e="annotation in typeannos">@RepAllContextsB</a> java.lang.String</span> <s\
|
||||
pan class="member-name">test4</span>()""",
|
||||
pan class="element-name">test4</span>()""",
|
||||
|
||||
"""
|
||||
java.lang.String</span> <span class="member-name">test5</span>​<span\
|
||||
java.lang.String</span> <span class="element-name">test5</span>​<span\
|
||||
class="parameters">(<a href="RepTypeUseA.html" title="annotation in typeannos">@\
|
||||
RepTypeUseA</a> <a href="RepTypeUseA.html" title="annotation in typeannos">@RepT\
|
||||
ypeUseA</a> <a href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeU\
|
||||
@ -742,22 +749,15 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
<a href="RepParameterB.html" title="annotation in typeannos">@RepParameterB</a> \
|
||||
<a href="RepParameterB.html" title="annotation in typeannos">@RepParameterB</a>
|
||||
java.lang.String parameter,
|
||||
<a href="RepParameterA.html" title="annotation in typeannos">@RepParameterA</a> \
|
||||
<a href="RepParameterA.html" title="annotation in typeannos">@RepParameterA</a> \
|
||||
<a href="RepParameterB.html" title="annotation in typeannos">@RepParameterB</a> \
|
||||
<a href="RepParameterB.html" title="annotation in typeannos">@RepParameterB</a>
|
||||
java.lang.String <a href="RepTypeUseA.html" title="annotation in typeannos">@Rep\
|
||||
TypeUseA</a> <a href="RepTypeUseA.html" title="annotation in typeannos">@RepType\
|
||||
UseA</a> <a href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB\
|
||||
</a> <a href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a>\
|
||||
... vararg)""");
|
||||
<a href="RepParameterA.html" title="annotation in typeannos">@RepParameterA</a> <a href="RepParameterA.html" title="annotation in typeannos">@RepParameterA</a> <a href="RepParameterB.html" title="annotation in typeannos">@RepParameterB</a> <a href="RepParameterB.html" title="annotation in typeannos">@RepParameterB</a>
|
||||
java.lang.String <a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> <a href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> ... vararg)</span></div>""");
|
||||
|
||||
checkOutput("typeannos/RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod.html", true,
|
||||
"""
|
||||
<code>(package private) <T> java.lang.String</code></div>
|
||||
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-\
|
||||
tab4 method-summary-table"><code><span class="member-name-link"><a href="#generi\
|
||||
cMethod(T)">genericMethod</a></span>​(T t)</code>""",
|
||||
<div class="col-second even-row-color method-summary-table-tab2 method-summary-t\
|
||||
able-tab4 method-summary-table"><code><span class="member-name-link"><a href="#g\
|
||||
enericMethod(T)">genericMethod</a></span>​(T t)</code>""",
|
||||
|
||||
"""
|
||||
<code>(package private) <T> java.lang.String</code></div>
|
||||
@ -776,17 +776,17 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
">test</a></span>()</code>""",
|
||||
|
||||
"""
|
||||
<span class="return-type">java.lang.String</span> <span class="member-name"\
|
||||
>test</span>​<span class="parameters">(<a href="RepTypeUseA.html" title="a\
|
||||
nnotation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseA.html" title="annot\
|
||||
ation in typeannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" title="annotatio\
|
||||
n in typeannos">@RepTypeUseB</a> <a href="RepTypeUseB.html" title="annotation in\
|
||||
typeannos">@RepTypeUseB</a> RepeatingOnTypeParametersBoundsTypeArgumentsOn\
|
||||
Method<<a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUse\
|
||||
A</a> <a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a\
|
||||
> <a href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> <a\
|
||||
href="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> T>&\
|
||||
nbsp;this)""");
|
||||
<span class="return-type">java.lang.String</span> <span class="element-name">test</\
|
||||
span>​<span class="parameters">(<a href="RepTypeUseA.html" title="annotati\
|
||||
on in typeannos">@RepTypeUseA</a> <a href="RepTypeUseA.html" title="annotation i\
|
||||
n typeannos">@RepTypeUseA</a> <a href="RepTypeUseB.html" title="annotation in ty\
|
||||
peannos">@RepTypeUseB</a> <a href="RepTypeUseB.html" title="annotation in typean\
|
||||
nos">@RepTypeUseB</a> RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod&\
|
||||
lt;<a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a> <\
|
||||
a href="RepTypeUseA.html" title="annotation in typeannos">@RepTypeUseA</a> <a hr\
|
||||
ef="RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> <a href="\
|
||||
RepTypeUseB.html" title="annotation in typeannos">@RepTypeUseB</a> T> th\
|
||||
is)""");
|
||||
|
||||
checkOutput("typeannos/RepeatingOnVoidMethodDeclaration.html", true,
|
||||
"""
|
||||
@ -794,6 +794,6 @@ public class TestTypeAnnotations extends JavadocTester {
|
||||
f="RepMethodA.html" title="annotation in typeannos">@RepMethodA</a>
|
||||
<a href="RepMethodB.html" title="annotation in typeannos">@RepMethodB</a> <a hre\
|
||||
f="RepMethodB.html" title="annotation in typeannos">@RepMethodB</a>
|
||||
</span><span class="return-type">void</span> <span class="member-name">test</span>()""");
|
||||
</span><span class="return-type">void</span> <span class="element-name">test</span>()""");
|
||||
}
|
||||
}
|
||||
|
@ -88,10 +88,10 @@ public class TestTypeParameters extends JavadocTester {
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("pkg/ClassUseTest3.html", true,
|
||||
"""
|
||||
public class <a href="../src-html/pkg/ClassUseTest3.html#line.28">ClassUseTest3<\
|
||||
/a><T extends <a href="ParamTest2.html" title="class in pkg">ParamTest2</a>&l\
|
||||
t;java.util.List<? extends <a href="Foo4.html" title="class in pkg">Foo4</a>&\
|
||||
gt;>>""");
|
||||
"""
|
||||
public class </span><span class="element-name"><a href="../src-html/pkg/ClassUse\
|
||||
Test3.html#line.28">ClassUseTest3</a><T extends <a href="ParamTest2.html" tit\
|
||||
le="class in pkg">ParamTest2</a><java.util.List<? extends <a href="Foo4.ht\
|
||||
ml" title="class in pkg">Foo4</a>>>>""");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user