Search in sources :

Example 16 with Type

use of com.sun.javadoc.Type in project com.revolsys.open by revolsys.

the class JavaDoclet method getAnchor.

public String getAnchor(final ExecutableMemberDoc member) {
    final StringBuilder anchor = new StringBuilder();
    final ClassDoc classDoc = member.containingClass();
    final String className = DocletUtil.qualifiedName(classDoc);
    anchor.append(className);
    anchor.append(".");
    anchor.append(member.name());
    anchor.append("(");
    final Parameter[] parameters = member.parameters();
    boolean first = true;
    for (final Parameter parameter : parameters) {
        if (first) {
            first = false;
        } else {
            anchor.append(",");
        }
        final Type type = parameter.type();
        String typeName = type.qualifiedTypeName();
        typeName = typeName.replaceAll("^java.lang.", "");
        typeName = typeName.replaceAll("^java.io.", "");
        typeName = typeName.replaceAll("^java.util.", "");
        anchor.append(typeName);
        anchor.append(type.dimension());
    }
    anchor.append(")");
    return anchor.toString();
}
Also used : Type(com.sun.javadoc.Type) Parameter(com.sun.javadoc.Parameter) ClassDoc(com.sun.javadoc.ClassDoc)

Example 17 with Type

use of com.sun.javadoc.Type in project h2database by h2database.

the class Doclet method writeMethodDetails.

private void writeMethodDetails(PrintWriter writer, ClassDoc clazz, ExecutableMemberDoc method, String signature) {
    String name = method.name();
    if (skipMethod(method)) {
        return;
    }
    Parameter[] params = method.parameters();
    StatementBuilder buff = new StatementBuilder();
    buff.append('(');
    int i = 0;
    for (Parameter p : params) {
        boolean isVarArgs = method.isVarArgs() && i++ == params.length - 1;
        buff.appendExceptFirst(", ");
        buff.append(getTypeName(false, isVarArgs, p.type()));
        buff.append(' ');
        buff.append(p.name());
    }
    buff.append(')');
    ClassDoc[] exceptions = method.thrownExceptions();
    if (exceptions.length > 0) {
        buff.append(" throws ");
        buff.resetCount();
        for (ClassDoc ex : exceptions) {
            buff.appendExceptFirst(", ");
            buff.append(ex.typeName());
        }
    }
    if (isDeprecated(method)) {
        name = "<span class=\"deprecated\">" + name + "</span>";
    }
    writer.println("<a id=\"" + signature + "\" href=\"#" + signature + "\">" + name + "</a>" + buff.toString());
    boolean hasComment = method.commentText() != null && method.commentText().trim().length() != 0;
    writer.println("<div class=\"methodText\">" + formatText(method.commentText()) + "</div>");
    ParamTag[] paramTags = method.paramTags();
    ThrowsTag[] throwsTags = method.throwsTags();
    boolean hasThrowsTag = throwsTags != null && throwsTags.length > 0;
    if (paramTags.length != params.length) {
        if (hasComment && !method.commentText().startsWith("[")) {
            // [Not supported] and such are not problematic
            addError("Undocumented parameter(s) (" + getLink(clazz, method.position().line()) + ") " + name + " documented: " + paramTags.length + " params: " + params.length);
        }
    }
    for (int j = 0; j < paramTags.length; j++) {
        String paramName = paramTags[j].parameterName();
        String comment = paramTags[j].parameterComment();
        if (comment.trim().length() == 0) {
            addError("Undocumented parameter (" + getLink(clazz, method.position().line()) + ") " + name + " " + paramName);
        }
        String p = paramName + " - " + comment;
        if (j == 0) {
            writer.println("<div class=\"itemTitle\">Parameters:</div>");
        }
        writer.println("<div class=\"item\">" + p + "</div>");
    }
    Tag[] returnTags = method.tags("return");
    Type returnType = getReturnType(method);
    if (returnTags != null && returnTags.length > 0) {
        writer.println("<div class=\"itemTitle\">Returns:</div>");
        String returnComment = returnTags[0].text();
        if (returnComment.trim().length() == 0) {
            addError("Undocumented return value (" + getLink(clazz, method.position().line()) + ") " + name);
        }
        writer.println("<div class=\"item\">" + returnComment + "</div>");
    } else if (returnType != null && !returnType.toString().equals("void")) {
        if (hasComment && !method.commentText().startsWith("[") && !hasThrowsTag) {
            // [Not supported] and such are not problematic
            // also not problematic are methods that always throw an
            // exception
            addError("Undocumented return value (" + getLink(clazz, method.position().line()) + ") " + name + " " + getReturnType(method));
        }
    }
    if (hasThrowsTag) {
        writer.println("<div class=\"itemTitle\">Throws:</div>");
        for (ThrowsTag tag : throwsTags) {
            String p = tag.exceptionName();
            String c = tag.exceptionComment();
            if (c.length() > 0) {
                p += " - " + c;
            }
            writer.println("<div class=\"item\">" + p + "</div>");
        }
    }
}
Also used : ParamTag(com.sun.javadoc.ParamTag) ThrowsTag(com.sun.javadoc.ThrowsTag) Type(com.sun.javadoc.Type) StatementBuilder(org.h2.util.StatementBuilder) Parameter(com.sun.javadoc.Parameter) Tag(com.sun.javadoc.Tag) ParamTag(com.sun.javadoc.ParamTag) ThrowsTag(com.sun.javadoc.ThrowsTag) ClassDoc(com.sun.javadoc.ClassDoc)

Aggregations

Type (com.sun.javadoc.Type)17 Parameter (com.sun.javadoc.Parameter)9 ClassDoc (com.sun.javadoc.ClassDoc)7 MethodDoc (com.sun.javadoc.MethodDoc)7 ParamTag (com.sun.javadoc.ParamTag)3 ParameterizedType (com.sun.javadoc.ParameterizedType)2 Tag (com.sun.javadoc.Tag)2 WildcardType (com.sun.javadoc.WildcardType)2 SeeTag (com.sun.javadoc.SeeTag)1 ThrowsTag (com.sun.javadoc.ThrowsTag)1 FileOutputStream (java.io.FileOutputStream)1 ObjectOutputStream (java.io.ObjectOutputStream)1 ArrayList (java.util.ArrayList)1 StatementBuilder (org.h2.util.StatementBuilder)1 JSONArray (org.json.JSONArray)1 JSONObject (org.json.JSONObject)1