Example #1
0
  /** {@inheritDoc} */
  public void inherit(DocFinder.Input input, DocFinder.Output output) {
    ClassDoc exception;
    if (input.tagId == null) {
      ThrowsTag throwsTag = (ThrowsTag) input.tag;
      exception = throwsTag.exception();
      input.tagId =
          exception == null ? throwsTag.exceptionName() : throwsTag.exception().qualifiedName();
    } else {
      exception = input.method.containingClass().findClass(input.tagId);
    }

    ThrowsTag[] tags = input.method.throwsTags();
    for (int i = 0; i < tags.length; i++) {
      if (input.tagId.equals(tags[i].exceptionName())
          || (tags[i].exception() != null
              && (input.tagId.equals(tags[i].exception().qualifiedName())))) {
        output.holder = input.method;
        output.holderTag = tags[i];
        output.inlineTags =
            input.isFirstSentence ? tags[i].firstSentenceTags() : tags[i].inlineTags();
        output.tagList.add(tags[i]);
      } else if (exception != null
          && tags[i].exception() != null
          && tags[i].exception().subclassOf(exception)) {
        output.tagList.add(tags[i]);
      }
    }
  }
Example #2
0
 /**
  * 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 TagletOutput representation of this <code>Tag</code>.
  */
 protected TagletOutput throwsTagsOutput(
     ThrowsTag[] throwTags,
     TagletWriter writer,
     Set<String> alreadyDocumented,
     boolean allowDups) {
   TagletOutput result = writer.getOutputInstance();
   if (throwTags.length > 0) {
     for (int i = 0; i < throwTags.length; ++i) {
       ThrowsTag tt = throwTags[i];
       ClassDoc cd = tt.exception();
       if ((!allowDups)
           && (alreadyDocumented.contains(tt.exceptionName())
               || (cd != null && alreadyDocumented.contains(cd.qualifiedName())))) {
         continue;
       }
       if (alreadyDocumented.size() == 0) {
         result.appendOutput(writer.getThrowsHeader());
       }
       result.appendOutput(writer.throwsTagOutput(tt));
       alreadyDocumented.add(cd != null ? cd.qualifiedName() : tt.exceptionName());
     }
   }
   return result;
 }