code: public static void genTagOuput(TagletManager tagletManager, Doc doc,
              Taglet[] taglets, TagletWriter writer, Content output) {
          tagletManager.checkTags(doc, doc.tags(), false);
          tagletManager.checkTags(doc, doc.inlineTags(), true);
          Content currentOutput = null;
          for (Taglet taglet : taglets) {
              currentOutput = null;
              if (doc instanceof ClassDoc && taglet instanceof ParamTaglet) {
                  //The type parameters are documented in a special section away
                  //from the tag info, so skip here.
                  continue;
              }
              if (taglet instanceof DeprecatedTaglet) {
                  //Deprecated information is documented "inline", not in tag info
                  //section.
                  continue;
              }
              try {
                  currentOutput = taglet.getTagletOutput(doc, writer);
              } catch (IllegalArgumentException e) {
                  //The taglet does not take a member as an argument.  Let's try
                  //a single tag.
                  Tag[] tags = doc.tags(taglet.getName());
                  if (tags.length > 0) {
                      currentOutput = taglet.getTagletOutput(tags[0], writer);
                  }
              }
              if (currentOutput != null) {
                  tagletManager.seenCustomTag(taglet.getName());
                  output.addContent(currentOutput);
              }
          }
      }
docs: Given an output object, append to it the tag documentation for
  the given member.
  
  @param tagletManager the manager that manages the taglets.
  @param doc the Doc that we are print tags for.
  @param taglets the taglets to print.
  @param writer the writer that will generate the output strings.
  @param output the output buffer to store the output in.