Search in sources :

Example 6 with Tag

use of com.sun.javadoc.Tag in project cxf by apache.

the class DumpJavaDoc method start.

public static boolean start(RootDoc root) throws IOException {
    String dumpFileName = readOptions(root.options());
    OutputStream os = Files.newOutputStream(Paths.get(dumpFileName));
    Properties javaDocMap = new Properties();
    for (ClassDoc classDoc : root.classes()) {
        javaDocMap.put(classDoc.toString(), classDoc.commentText());
        for (MethodDoc method : classDoc.methods()) {
            javaDocMap.put(method.qualifiedName(), method.commentText());
            for (ParamTag paramTag : method.paramTags()) {
                Parameter[] parameters = method.parameters();
                for (int i = 0; i < parameters.length; ++i) {
                    if (parameters[i].name().equals(paramTag.parameterName())) {
                        javaDocMap.put(method.qualifiedName() + ".paramCommentTag." + i, paramTag.parameterComment());
                    }
                }
            }
            Tag[] retTags = method.tags("return");
            if (retTags != null && retTags.length == 1) {
                Tag retTag = method.tags("return")[0];
                javaDocMap.put(method.qualifiedName() + "." + "returnCommentTag", retTag.text());
            }
        }
    }
    javaDocMap.store(os, "");
    os.flush();
    os.close();
    return true;
}
Also used : ParamTag(com.sun.javadoc.ParamTag) MethodDoc(com.sun.javadoc.MethodDoc) OutputStream(java.io.OutputStream) Parameter(com.sun.javadoc.Parameter) ParamTag(com.sun.javadoc.ParamTag) Tag(com.sun.javadoc.Tag) Properties(java.util.Properties) ClassDoc(com.sun.javadoc.ClassDoc)

Example 7 with Tag

use of com.sun.javadoc.Tag in project jersey by jersey.

the class ResourceDoclet method toCSV.

static String toCSV(final Collection<Tag> items, final String separator, final String delimiter) {
    if (items == null) {
        return null;
    }
    if (items.isEmpty()) {
        return "";
    }
    final StringBuilder sb = new StringBuilder();
    for (final Iterator<Tag> iter = items.iterator(); iter.hasNext(); ) {
        if (delimiter != null) {
            sb.append(delimiter);
        }
        final Tag item = iter.next();
        sb.append(item.name());
        if (delimiter != null) {
            sb.append(delimiter);
        }
        if (iter.hasNext()) {
            sb.append(separator);
        }
    }
    return sb.toString();
}
Also used : Tag(com.sun.javadoc.Tag) ParamTag(com.sun.javadoc.ParamTag) SeeTag(com.sun.javadoc.SeeTag)

Example 8 with Tag

use of com.sun.javadoc.Tag in project jersey by jersey.

the class ResourceDoclet method addResponseDoc.

private static void addResponseDoc(final MethodDoc methodDoc, final MethodDocType methodDocType) {
    final ResponseDocType responseDoc = new ResponseDocType();
    final Tag returnTag = getSingleTagOrNull(methodDoc, "return");
    if (returnTag != null) {
        responseDoc.setReturnDoc(returnTag.text());
    }
    final Tag[] responseParamTags = methodDoc.tags("response.param");
    for (final Tag responseParamTag : responseParamTags) {
        // LOG.info( "Have responseparam tag: " + print( responseParamTag ) );
        final WadlParamType wadlParam = new WadlParamType();
        for (final Tag inlineTag : responseParamTag.inlineTags()) {
            final String tagName = inlineTag.name();
            final String tagText = inlineTag.text();
            /* skip empty tags
                 */
            if (isEmpty(tagText)) {
                if (LOG.isLoggable(Level.FINE)) {
                    LOG.fine("Skipping empty inline tag of @response.param in method " + methodDoc.qualifiedName() + ": " + tagName);
                }
                continue;
            }
            switch(tagName) {
                case "@name":
                    wadlParam.setName(tagText);
                    break;
                case "@style":
                    wadlParam.setStyle(tagText);
                    break;
                case "@type":
                    wadlParam.setType(QName.valueOf(tagText));
                    break;
                case "@doc":
                    wadlParam.setDoc(tagText);
                    break;
                default:
                    LOG.warning("Unknown inline tag of @response.param in method " + methodDoc.qualifiedName() + ": " + tagName + " (value: " + tagText + ")");
                    break;
            }
        }
        responseDoc.getWadlParams().add(wadlParam);
    }
    final Map<String, List<Tag>> tagsByStatus = getResponseRepresentationTags(methodDoc);
    for (final Entry<String, List<Tag>> entry : tagsByStatus.entrySet()) {
        final RepresentationDocType representationDoc = new RepresentationDocType();
        representationDoc.setStatus(Long.valueOf(entry.getKey()));
        for (final Tag tag : entry.getValue()) {
            if (tag.name().endsWith(".qname")) {
                representationDoc.setElement(QName.valueOf(tag.text()));
            } else if (tag.name().endsWith(".mediaType")) {
                representationDoc.setMediaType(tag.text());
            } else if (tag.name().endsWith(".example")) {
                representationDoc.setExample(getSerializedExample(tag));
            } else if (tag.name().endsWith(".doc")) {
                representationDoc.setDoc(tag.text());
            } else {
                LOG.warning("Unknown response representation tag " + tag.name());
            }
        }
        responseDoc.getRepresentations().add(representationDoc);
    }
    methodDocType.setResponseDoc(responseDoc);
}
Also used : WadlParamType(org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.WadlParamType) ResponseDocType(org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.ResponseDocType) ArrayList(java.util.ArrayList) List(java.util.List) Tag(com.sun.javadoc.Tag) ParamTag(com.sun.javadoc.ParamTag) SeeTag(com.sun.javadoc.SeeTag) RepresentationDocType(org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.RepresentationDocType)

Example 9 with Tag

use of com.sun.javadoc.Tag in project jersey by jersey.

the class ResourceDoclet method getResponseRepresentationTags.

private static Map<String, List<Tag>> getResponseRepresentationTags(final MethodDoc methodDoc) {
    final Map<String, List<Tag>> tagsByStatus = new HashMap<>();
    for (final Tag tag : methodDoc.tags()) {
        final Matcher matcher = PATTERN_RESPONSE_REPRESENTATION.matcher(tag.name());
        if (matcher.matches()) {
            final String status = matcher.group(1);
            List<Tag> tags = tagsByStatus.get(status);
            if (tags == null) {
                tags = new ArrayList<>();
                tagsByStatus.put(status, tags);
            }
            tags.add(tag);
        }
    }
    return tagsByStatus;
}
Also used : HashMap(java.util.HashMap) Matcher(java.util.regex.Matcher) ArrayList(java.util.ArrayList) List(java.util.List) Tag(com.sun.javadoc.Tag) ParamTag(com.sun.javadoc.ParamTag) SeeTag(com.sun.javadoc.SeeTag)

Example 10 with Tag

use of com.sun.javadoc.Tag in project bazel by bazelbuild.

the class ManualTaglet method toString.

@Override
public String toString(Tag[] tags) {
    if (tags.length == 0)
        return "";
    StringBuilder sb = new StringBuilder();
    for (Tag t : tags) {
        String[] split = t.text().split(" ", 2);
        if (t != tags[0])
            sb.append(", ");
        sb.append(formatLink(split));
    }
    return formatHeader(sb.toString());
}
Also used : Tag(com.sun.javadoc.Tag)

Aggregations

Tag (com.sun.javadoc.Tag)23 SeeTag (com.sun.javadoc.SeeTag)7 ParamTag (com.sun.javadoc.ParamTag)6 ArrayList (java.util.ArrayList)6 List (java.util.List)5 Test (org.junit.Test)4 Matcher (java.util.regex.Matcher)3 ClassDoc (com.sun.javadoc.ClassDoc)2 MethodDoc (com.sun.javadoc.MethodDoc)2 TagletOutputImpl (com.sun.tools.doclets.formats.html.TagletOutputImpl)2 TagletWriterImpl (com.sun.tools.doclets.formats.html.TagletWriterImpl)2 HashMap (java.util.HashMap)2 RepresentationDocType (org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model.RepresentationDocType)2 JSONObject (org.json.JSONObject)2 JavadocInlineTagHandler (com.eden.orchid.javadoc.api.JavadocInlineTagHandler)1 Parameter (com.sun.javadoc.Parameter)1 OutputStream (java.io.OutputStream)1 Enumeration (java.util.Enumeration)1 Hashtable (java.util.Hashtable)1 Iterator (java.util.Iterator)1