protected Content throwsTagsOutput(Map<List<? extends DocTree>, ExecutableElement> throwTags,
        TagletWriter writer, Set<String> alreadyDocumented, boolean allowDups) {
        Utils utils = writer.configuration().utils;
        Content result = writer.getOutputInstance();
        if (!throwTags.isEmpty()) {
            for (Entry<List<? extends DocTree>, ExecutableElement> entry : throwTags.entrySet()) {
                CommentHelper ch = utils.getCommentHelper(entry.getValue());
                Element e = entry.getValue();
                for (DocTree dt : entry.getKey()) {
                    Element te = ch.getException(utils.configuration, dt);
                    String excName = ch.getExceptionName(dt).toString();
                    if ((!allowDups) &&
                        (alreadyDocumented.contains(excName) ||
                        (te != null && alreadyDocumented.contains(utils.getFullyQualifiedName(te))))) {
                        continue;
                    }
                    if (alreadyDocumented.isEmpty()) {
                        result.addContent(writer.getThrowsHeader());
                    }
                    result.addContent(writer.throwsTagOutput(e, dt));
                    alreadyDocumented.add(te != null
                            ? utils.getFullyQualifiedName(te)
                            : excName);
                }
            }
        }
        return result;
    }
protected Content throwsTagsOutput ( Map < List < ? extends DocTree > , ExecutableElement > throwTags , TagletWriter writer , Set < String > alreadyDocumented , boolean allowDups ) { Utils utils = writer . configuration ( ) . utils ; Content result = writer . getOutputInstance ( ) ; if ( ! throwTags . isEmpty ( ) ) { for ( Entry < List < ? extends DocTree > , ExecutableElement > entry : throwTags . entrySet ( ) ) { CommentHelper ch = utils . getCommentHelper ( entry . getValue ( ) ) ; Element e = entry . getValue ( ) ; for ( DocTree dt : entry . getKey ( ) ) { Element te = ch . getException ( utils . configuration , dt ) ; String excName = ch . getExceptionName ( dt ) . toString ( ) ; if ( ( ! allowDups ) && ( alreadyDocumented . contains ( excName ) || ( te != null && alreadyDocumented . contains ( utils . getFullyQualifiedName ( te ) ) ) ) ) { continue ; } if ( alreadyDocumented . isEmpty ( ) ) { result . addContent ( writer . getThrowsHeader ( ) ) ; } result . addContent ( writer . throwsTagOutput ( e , dt ) ) ; alreadyDocumented . add ( te != null ? utils . getFullyQualifiedName ( te ) : excName ) ; } } } return result ; }
Given an array of <code>Tag</code>s representing this custom
tag, return its string representation.
@param throwTags the array of <code>ThrowsTag</code>s to convert.
@param writer the TagletWriter that will write this tag.
@param alreadyDocumented the set of exceptions that have already
been documented.
@param allowDups True if we allow duplicate throws tags to be documented.
@return the Content representation of this <code>Tag</code>.