Java源码示例:com.sun.javadoc.MemberDoc
示例1
/**
* Render the tag.
*
* @todo TODOs can also be used in member docs ...
*
* @param tag The tag to render.
* @param target The target {@link StringBuilder}.
* @todo ... or even parameter docs -- which is a little strange, actually. ;)
* @param doclet The doclet.
*/
@Override
public void render(Tag tag, StringBuilder target, MarkdownDoclet doclet) {
Counter counter;
if ( tag.holder() instanceof MemberDoc ) {
counter = getCounter(((MemberDoc)tag.holder()).containingClass());
}
else {
counter = getCounter(tag.holder());
}
target.append("<div class=\"todo\">");
target.append("<div class=\"todoTitle\"><span class=\"todoTitle\">")
.append(doclet.getOptions().getTodoTitle())
.append("</span><span class=\"todoCounter\">#")
.append(counter.next())
.append("</span></div>");
target.append("<div class=\"todoText\">");
target.append(doclet.toHtml(tag.text().trim()));
target.append("</div></div>");
}
示例2
/**
* Returns true if the given element is hidden.
*/
private static boolean isHidden(Doc doc) {
// Methods, fields, constructors.
if (doc instanceof MemberDoc) {
return hasHideAnnotation(doc);
}
// Classes, interfaces, enums, annotation types.
if (doc instanceof ClassDoc) {
ClassDoc classDoc = (ClassDoc) doc;
// Check the containing package.
if (hasHideAnnotation(classDoc.containingPackage())) {
return true;
}
// Check the class doc and containing class docs if this is a
// nested class.
ClassDoc current = classDoc;
do {
if (hasHideAnnotation(current)) {
return true;
}
current = current.containingClass();
} while (current != null);
}
return false;
}
示例3
@Override
protected String modifierString(MemberDoc member) {
final int ms = member.modifierSpecifier();
final int no = Modifier.FINAL | Modifier.NATIVE | Modifier.SYNCHRONIZED;
return Modifier.toString(ms & ~no);
}
示例4
private void renderSeeTag(MarkdownDoclet doclet, StringBuilder tagBlock, PsiDocTag docTag) {
final String seeText = toString(docTag, false);
if ( seeText.startsWith("\"") ) {
SeeTag tag = new SeeTag() {
@Override
public String label() {
return null;
}
@Override
public PackageDoc referencedPackage() {
return null;
}
@Override
public String referencedClassName() {
return null;
}
@Override
public ClassDoc referencedClass() {
return null;
}
@Override
public String referencedMemberName() {
return null;
}
@Override
public MemberDoc referencedMember() {
return null;
}
@Override
public String name() {
return "@see";
}
@Override
public Doc holder() {
return null;
}
@Override
public String kind() {
return "@see";
}
@Override
public String text() {
return seeText;
}
@Override
public Tag[] inlineTags() {
return new Tag[0];
}
@Override
public Tag[] firstSentenceTags() {
return new Tag[0];
}
@Override
public SourcePosition position() {
return null;
}
};
SeeTagRenderer.INSTANCE.render(tag, tagBlock, doclet);
}
else {
tagBlock.append("\[email protected]").append(docTag.getName());
tagBlock.append(' ').append(seeText);
}
}
示例5
/**
* Process the member documentation.
*
* @param doc The member documentation.
*/
protected void processMember(MemberDoc doc) {
defaultProcess(doc, true);
}