8012308: Remove TagletOutput in favor of direct use of Content

Tue, 14 May 2013 10:14:57 -0700

author
jjg
date
Tue, 14 May 2013 10:14:57 -0700
changeset 1751
ca8808c88f94
parent 1750
081d7c72ee92
child 1752
c09b7234cded

8012308: Remove TagletOutput in favor of direct use of Content
Reviewed-by: darcy

src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/TagletOutputImpl.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/markup/ContentBuilder.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BasePropertyTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DocRootTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritDocTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SimpleTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletOutput.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testTaglets/taglets/Foo.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Tue May 14 10:14:56 2013 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Tue May 14 10:14:57 2013 -0700
     1.3 @@ -348,11 +348,10 @@
     1.4       * @param contentTree the content tree to which the deprecated information will be added.
     1.5       */
     1.6      protected void addDeprecatedInfo(ProgramElementDoc member, Content contentTree) {
     1.7 -        TagletOutput output = (new DeprecatedTaglet()).getTagletOutput(member,
     1.8 +        Content output = (new DeprecatedTaglet()).getTagletOutput(member,
     1.9              writer.getTagletWriterInstance(false));
    1.10 -        Content body = ((TagletOutputImpl) output).getContent();
    1.11 -        if (!body.isEmpty()) {
    1.12 -            Content deprecatedContent = body;
    1.13 +        if (!output.isEmpty()) {
    1.14 +            Content deprecatedContent = output;
    1.15              Content div = HtmlTree.DIV(HtmlStyle.block, deprecatedContent);
    1.16              contentTree.addContent(div);
    1.17          }
     2.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Tue May 14 10:14:56 2013 -0700
     2.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Tue May 14 10:14:57 2013 -0700
     2.3 @@ -395,9 +395,8 @@
     2.4       */
     2.5      public void addTypeParamInfo(Content classInfoTree) {
     2.6          if (classDoc.typeParamTags().length > 0) {
     2.7 -            TagletOutput output = (new ParamTaglet()).getTagletOutput(classDoc,
     2.8 +            Content typeParam = (new ParamTaglet()).getTagletOutput(classDoc,
     2.9                      getTagletWriterInstance(false));
    2.10 -            Content typeParam = ((TagletOutputImpl) output).getContent();
    2.11              Content dl = HtmlTree.DL(typeParam);
    2.12              classInfoTree.addContent(dl);
    2.13          }
     3.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Tue May 14 10:14:56 2013 -0700
     3.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Tue May 14 10:14:57 2013 -0700
     3.3 @@ -246,11 +246,11 @@
     3.4          if (doc instanceof MethodDoc) {
     3.5              addMethodInfo((MethodDoc) doc, dl);
     3.6          }
     3.7 -        TagletOutputImpl output = new TagletOutputImpl();
     3.8 +        Content output = new ContentBuilder();
     3.9          TagletWriter.genTagOuput(configuration.tagletManager, doc,
    3.10              configuration.tagletManager.getCustomTaglets(doc),
    3.11                  getTagletWriterInstance(false), output);
    3.12 -        dl.addContent(output.getContent());
    3.13 +        dl.addContent(output);
    3.14          htmltree.addContent(dl);
    3.15      }
    3.16  
    3.17 @@ -262,11 +262,11 @@
    3.18       * @return true if there are tags to be printed else return false.
    3.19       */
    3.20      protected boolean hasSerializationOverviewTags(FieldDoc field) {
    3.21 -        TagletOutputImpl output = new TagletOutputImpl();
    3.22 +        Content output = new ContentBuilder();
    3.23          TagletWriter.genTagOuput(configuration.tagletManager, field,
    3.24              configuration.tagletManager.getCustomTaglets(field),
    3.25                  getTagletWriterInstance(false), output);
    3.26 -        return !output.getContent().isEmpty();
    3.27 +        return !output.isEmpty();
    3.28      }
    3.29  
    3.30      /**
    3.31 @@ -1583,11 +1583,11 @@
    3.32                  result.addContent(seeTagToContent((SeeTag) tagelem));
    3.33              } else if (! tagName.equals("Text")) {
    3.34                  boolean wasEmpty = result.isEmpty();
    3.35 -                TagletOutput output = TagletWriter.getInlineTagOuput(
    3.36 +                Content output = TagletWriter.getInlineTagOuput(
    3.37                      configuration.tagletManager, holderTag,
    3.38                      tagelem, getTagletWriterInstance(isFirstSentence));
    3.39                  if (output != null)
    3.40 -                    result.addContent(((TagletOutputImpl) output).getContent());
    3.41 +                    result.addContent(output);
    3.42                  if (wasEmpty && isFirstSentence && tagelem.name().equals("@inheritDoc") && !result.isEmpty()) {
    3.43                      break;
    3.44                  } else if (configuration.docrootparent.length() > 0 &&
    3.45 @@ -1726,7 +1726,7 @@
    3.46          return text;
    3.47      }
    3.48  
    3.49 -    static Set<String> blockTags = new HashSet<>();
    3.50 +    static Set<String> blockTags = new HashSet<String>();
    3.51      static {
    3.52          for (HtmlTag t: HtmlTag.values()) {
    3.53              if (t.blockType == HtmlTag.BlockType.BLOCK)
     4.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java	Tue May 14 10:14:56 2013 -0700
     4.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java	Tue May 14 10:14:57 2013 -0700
     4.3 @@ -186,11 +186,10 @@
     4.4       * @param contentTree the tree to which the member tags info will be added
     4.5       */
     4.6      public void addMemberTags(FieldDoc field, Content contentTree) {
     4.7 -        TagletOutputImpl output = new TagletOutputImpl();
     4.8 +        Content tagContent = new ContentBuilder();
     4.9          TagletWriter.genTagOuput(configuration.tagletManager, field,
    4.10                  configuration.tagletManager.getCustomTaglets(field),
    4.11 -                writer.getTagletWriterInstance(false), output);
    4.12 -        Content tagContent = output.getContent();
    4.13 +                writer.getTagletWriterInstance(false), tagContent);
    4.14          Content dlTags = new HtmlTree(HtmlTag.DL);
    4.15          dlTags.addContent(tagContent);
    4.16          contentTree.addContent(dlTags);  // TODO: what if empty?
     5.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java	Tue May 14 10:14:56 2013 -0700
     5.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java	Tue May 14 10:14:57 2013 -0700
     5.3 @@ -146,13 +146,12 @@
     5.4       * @param methodsContentTree the tree to which the member tags info will be added
     5.5       */
     5.6      public void addMemberTags(MethodDoc member, Content methodsContentTree) {
     5.7 -        TagletOutputImpl output = new TagletOutputImpl();
     5.8 +        Content tagContent = new ContentBuilder();
     5.9          TagletManager tagletManager =
    5.10              configuration.tagletManager;
    5.11          TagletWriter.genTagOuput(tagletManager, member,
    5.12              tagletManager.getSerializedFormTaglets(),
    5.13 -            writer.getTagletWriterInstance(false), output);
    5.14 -        Content tagContent = output.getContent();
    5.15 +            writer.getTagletWriterInstance(false), tagContent);
    5.16          Content dlTags = new HtmlTree(HtmlTag.DL);
    5.17          dlTags.addContent(tagContent);
    5.18          methodsContentTree.addContent(dlTags);  // TODO: what if empty?
     6.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/TagletOutputImpl.java	Tue May 14 10:14:56 2013 -0700
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,97 +0,0 @@
     6.4 -/*
     6.5 - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
     6.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6.7 - *
     6.8 - * This code is free software; you can redistribute it and/or modify it
     6.9 - * under the terms of the GNU General Public License version 2 only, as
    6.10 - * published by the Free Software Foundation.  Oracle designates this
    6.11 - * particular file as subject to the "Classpath" exception as provided
    6.12 - * by Oracle in the LICENSE file that accompanied this code.
    6.13 - *
    6.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
    6.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    6.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    6.17 - * version 2 for more details (a copy is included in the LICENSE file that
    6.18 - * accompanied this code).
    6.19 - *
    6.20 - * You should have received a copy of the GNU General Public License version
    6.21 - * 2 along with this work; if not, write to the Free Software Foundation,
    6.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    6.23 - *
    6.24 - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    6.25 - * or visit www.oracle.com if you need additional information or have any
    6.26 - * questions.
    6.27 - */
    6.28 -
    6.29 -package com.sun.tools.doclets.formats.html;
    6.30 -
    6.31 -import com.sun.tools.doclets.formats.html.markup.ContentBuilder;
    6.32 -import com.sun.tools.doclets.formats.html.markup.RawHtml;
    6.33 -import com.sun.tools.doclets.internal.toolkit.Content;
    6.34 -import com.sun.tools.doclets.internal.toolkit.taglets.*;
    6.35 -
    6.36 -/**
    6.37 - * The output for HTML taglets.
    6.38 - *
    6.39 - *  <p><b>This is NOT part of any supported API.
    6.40 - *  If you write code that depends on this, you do so at your own risk.
    6.41 - *  This code and its internal interfaces are subject to change or
    6.42 - *  deletion without notice.</b>
    6.43 - *
    6.44 - * @since 1.5
    6.45 - * @author Jamie Ho
    6.46 - * @author Jonathan Gibbons (rewrite)
    6.47 - */
    6.48 -
    6.49 -public class TagletOutputImpl implements TagletOutput {
    6.50 -
    6.51 -    private ContentBuilder content;
    6.52 -
    6.53 -    public TagletOutputImpl() {
    6.54 -        content = new ContentBuilder();
    6.55 -    }
    6.56 -
    6.57 -    public TagletOutputImpl(String o) {
    6.58 -        setOutput(o);
    6.59 -    }
    6.60 -
    6.61 -    public TagletOutputImpl(Content c) {
    6.62 -        setOutput(c);
    6.63 -    }
    6.64 -
    6.65 -    Content getContent() {
    6.66 -        return content;
    6.67 -    }
    6.68 -
    6.69 -    /**
    6.70 -     * {@inheritDoc}
    6.71 -     */
    6.72 -    public void setOutput (Object o) {
    6.73 -        content = new ContentBuilder();
    6.74 -        if (o != null) {
    6.75 -            if (o instanceof String)
    6.76 -                content.addContent(new RawHtml((String) o));
    6.77 -            else if (o instanceof Content)
    6.78 -                content.addContent((Content) o);
    6.79 -            else if (o instanceof TagletOutputImpl)
    6.80 -                content.addContent(((TagletOutputImpl) o).content);
    6.81 -            else
    6.82 -                throw new IllegalArgumentException(o.getClass().getName());
    6.83 -        }
    6.84 -    }
    6.85 -
    6.86 -    /**
    6.87 -     * {@inheritDoc}
    6.88 -     */
    6.89 -    public void appendOutput(TagletOutput o) {
    6.90 -        if (o instanceof TagletOutputImpl)
    6.91 -            content.addContent(((TagletOutputImpl) o).content);
    6.92 -        else
    6.93 -            throw new IllegalArgumentException(o.getClass().getName());
    6.94 -    }
    6.95 -
    6.96 -    public String toString() {
    6.97 -        return content.toString();
    6.98 -    }
    6.99 -
   6.100 -}
     7.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java	Tue May 14 10:14:56 2013 -0700
     7.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java	Tue May 14 10:14:57 2013 -0700
     7.3 @@ -27,9 +27,7 @@
     7.4  
     7.5  import com.sun.javadoc.*;
     7.6  import com.sun.tools.doclets.formats.html.markup.ContentBuilder;
     7.7 -import com.sun.tools.doclets.formats.html.markup.HtmlAttr;
     7.8  import com.sun.tools.doclets.formats.html.markup.HtmlStyle;
     7.9 -import com.sun.tools.doclets.formats.html.markup.HtmlTag;
    7.10  import com.sun.tools.doclets.formats.html.markup.HtmlTree;
    7.11  import com.sun.tools.doclets.formats.html.markup.RawHtml;
    7.12  import com.sun.tools.doclets.formats.html.markup.StringContent;
    7.13 @@ -65,34 +63,36 @@
    7.14      /**
    7.15       * {@inheritDoc}
    7.16       */
    7.17 -    public TagletOutput getOutputInstance() {
    7.18 -        return new TagletOutputImpl();
    7.19 +    public Content getOutputInstance() {
    7.20 +        return new ContentBuilder();
    7.21      }
    7.22  
    7.23      /**
    7.24       * {@inheritDoc}
    7.25       */
    7.26 -    protected TagletOutput codeTagOutput(Tag tag) {
    7.27 +    protected Content codeTagOutput(Tag tag) {
    7.28          Content result = HtmlTree.CODE(new StringContent(tag.text()));
    7.29 -        return new TagletOutputImpl(result);
    7.30 +        return result;
    7.31      }
    7.32  
    7.33      /**
    7.34       * {@inheritDoc}
    7.35       */
    7.36 -    public TagletOutput getDocRootOutput() {
    7.37 +    public Content getDocRootOutput() {
    7.38 +        String path;
    7.39          if (configuration.docrootparent.length() > 0)
    7.40 -            return new TagletOutputImpl(configuration.docrootparent);
    7.41 +            path = configuration.docrootparent;
    7.42          else if (htmlWriter.pathToRoot.isEmpty())
    7.43 -            return new TagletOutputImpl(".");
    7.44 +            path = ".";
    7.45          else
    7.46 -            return new TagletOutputImpl(htmlWriter.pathToRoot.getPath());
    7.47 +            path = htmlWriter.pathToRoot.getPath();
    7.48 +        return new StringContent(path);
    7.49      }
    7.50  
    7.51      /**
    7.52       * {@inheritDoc}
    7.53       */
    7.54 -    public TagletOutput deprecatedTagOutput(Doc doc) {
    7.55 +    public Content deprecatedTagOutput(Doc doc) {
    7.56          ContentBuilder result = new ContentBuilder();
    7.57          Tag[] deprs = doc.tags("deprecated");
    7.58          if (doc instanceof ClassDoc) {
    7.59 @@ -104,7 +104,7 @@
    7.60                      Tag[] commentTags = deprs[0].inlineTags();
    7.61                      if (commentTags.length > 0) {
    7.62                          result.addContent(commentTagsToOutput(null, doc,
    7.63 -                            deprs[0].inlineTags(), false).getContent()
    7.64 +                            deprs[0].inlineTags(), false)
    7.65                          );
    7.66                      }
    7.67                  }
    7.68 @@ -116,9 +116,9 @@
    7.69                          new StringContent(configuration.getText("doclet.Deprecated"))));
    7.70                  result.addContent(RawHtml.nbsp);
    7.71                  if (deprs.length > 0) {
    7.72 -                    TagletOutputImpl body = commentTagsToOutput(null, doc,
    7.73 +                    Content body = commentTagsToOutput(null, doc,
    7.74                          deprs[0].inlineTags(), false);
    7.75 -                    result.addContent(HtmlTree.I(body.getContent()));
    7.76 +                    result.addContent(HtmlTree.I(body));
    7.77                  }
    7.78              } else {
    7.79                  if (Util.isDeprecated(member.containingClass())) {
    7.80 @@ -128,15 +128,15 @@
    7.81                  }
    7.82              }
    7.83          }
    7.84 -        return new TagletOutputImpl(result);
    7.85 +        return result;
    7.86      }
    7.87  
    7.88      /**
    7.89       * {@inheritDoc}
    7.90       */
    7.91 -    protected TagletOutput literalTagOutput(Tag tag) {
    7.92 +    protected Content literalTagOutput(Tag tag) {
    7.93          Content result = new StringContent(tag.text());
    7.94 -        return new TagletOutputImpl(result);
    7.95 +        return result;
    7.96      }
    7.97  
    7.98      /**
    7.99 @@ -149,53 +149,53 @@
   7.100      /**
   7.101       * {@inheritDoc}
   7.102       */
   7.103 -    public TagletOutput getParamHeader(String header) {
   7.104 +    public Content getParamHeader(String header) {
   7.105          HtmlTree result = HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.strong,
   7.106                  new StringContent(header)));
   7.107 -        return new TagletOutputImpl(result);
   7.108 +        return result;
   7.109      }
   7.110  
   7.111      /**
   7.112       * {@inheritDoc}
   7.113       */
   7.114 -    public TagletOutput paramTagOutput(ParamTag paramTag, String paramName) {
   7.115 +    public Content paramTagOutput(ParamTag paramTag, String paramName) {
   7.116          ContentBuilder body = new ContentBuilder();
   7.117          body.addContent(HtmlTree.CODE(new RawHtml(paramName)));
   7.118          body.addContent(" - ");
   7.119          body.addContent(htmlWriter.commentTagsToContent(paramTag, null, paramTag.inlineTags(), false));
   7.120          HtmlTree result = HtmlTree.DD(body);
   7.121 -        return new TagletOutputImpl(result);
   7.122 +        return result;
   7.123      }
   7.124  
   7.125      /**
   7.126       * {@inheritDoc}
   7.127       */
   7.128 -    public TagletOutput propertyTagOutput(Tag tag, String prefix) {
   7.129 +    public Content propertyTagOutput(Tag tag, String prefix) {
   7.130          Content body = new ContentBuilder();
   7.131          body.addContent(new RawHtml(prefix));
   7.132          body.addContent(" ");
   7.133          body.addContent(HtmlTree.CODE(new RawHtml(tag.text())));
   7.134          body.addContent(".");
   7.135          Content result = HtmlTree.P(body);
   7.136 -        return new TagletOutputImpl(result);
   7.137 +        return result;
   7.138      }
   7.139  
   7.140      /**
   7.141       * {@inheritDoc}
   7.142       */
   7.143 -    public TagletOutput returnTagOutput(Tag returnTag) {
   7.144 +    public Content returnTagOutput(Tag returnTag) {
   7.145          ContentBuilder result = new ContentBuilder();
   7.146          result.addContent(HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.strong,
   7.147                  new StringContent(configuration.getText("doclet.Returns")))));
   7.148          result.addContent(HtmlTree.DD(htmlWriter.commentTagsToContent(
   7.149                  returnTag, null, returnTag.inlineTags(), false)));
   7.150 -        return new TagletOutputImpl(result);
   7.151 +        return result;
   7.152      }
   7.153  
   7.154      /**
   7.155       * {@inheritDoc}
   7.156       */
   7.157 -    public TagletOutput seeTagOutput(Doc holder, SeeTag[] seeTags) {
   7.158 +    public Content seeTagOutput(Doc holder, SeeTag[] seeTags) {
   7.159          ContentBuilder body = new ContentBuilder();
   7.160          if (seeTags.length > 0) {
   7.161              for (int i = 0; i < seeTags.length; ++i) {
   7.162 @@ -227,13 +227,13 @@
   7.163              }
   7.164          }
   7.165          if (body.isEmpty())
   7.166 -            return new TagletOutputImpl(body);
   7.167 +            return body;
   7.168  
   7.169          ContentBuilder result = new ContentBuilder();
   7.170          result.addContent(HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.strong,
   7.171                  new StringContent(configuration.getText("doclet.See_Also")))));
   7.172          result.addContent(HtmlTree.DD(body));
   7.173 -        return new TagletOutputImpl(result);
   7.174 +        return result;
   7.175  
   7.176      }
   7.177  
   7.178 @@ -247,7 +247,7 @@
   7.179      /**
   7.180       * {@inheritDoc}
   7.181       */
   7.182 -    public TagletOutput simpleTagOutput(Tag[] simpleTags, String header) {
   7.183 +    public Content simpleTagOutput(Tag[] simpleTags, String header) {
   7.184          ContentBuilder result = new ContentBuilder();
   7.185          result.addContent(HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.strong, new RawHtml(header))));
   7.186          ContentBuilder body = new ContentBuilder();
   7.187 @@ -259,34 +259,34 @@
   7.188                      simpleTags[i], null, simpleTags[i].inlineTags(), false));
   7.189          }
   7.190          result.addContent(HtmlTree.DD(body));
   7.191 -        return new TagletOutputImpl(result);
   7.192 +        return result;
   7.193      }
   7.194  
   7.195      /**
   7.196       * {@inheritDoc}
   7.197       */
   7.198 -    public TagletOutput simpleTagOutput(Tag simpleTag, String header) {
   7.199 +    public Content simpleTagOutput(Tag simpleTag, String header) {
   7.200          ContentBuilder result = new ContentBuilder();
   7.201          result.addContent(HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.strong, new RawHtml(header))));
   7.202          Content body = htmlWriter.commentTagsToContent(
   7.203                  simpleTag, null, simpleTag.inlineTags(), false);
   7.204          result.addContent(HtmlTree.DD(body));
   7.205 -        return new TagletOutputImpl(result);
   7.206 +        return result;
   7.207      }
   7.208  
   7.209      /**
   7.210       * {@inheritDoc}
   7.211       */
   7.212 -    public TagletOutput getThrowsHeader() {
   7.213 +    public Content getThrowsHeader() {
   7.214          HtmlTree result = HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.strong,
   7.215                  new StringContent(configuration.getText("doclet.Throws"))));
   7.216 -        return new TagletOutputImpl(result);
   7.217 +        return result;
   7.218      }
   7.219  
   7.220      /**
   7.221       * {@inheritDoc}
   7.222       */
   7.223 -    public TagletOutput throwsTagOutput(ThrowsTag throwsTag) {
   7.224 +    public Content throwsTagOutput(ThrowsTag throwsTag) {
   7.225          ContentBuilder body = new ContentBuilder();
   7.226          Content excName = (throwsTag.exceptionType() == null) ?
   7.227                  new RawHtml(throwsTag.exceptionName()) :
   7.228 @@ -299,50 +299,50 @@
   7.229              body.addContent(" - ");
   7.230              body.addContent(desc);
   7.231          }
   7.232 -        HtmlTree res2 = HtmlTree.DD(body);
   7.233 -        return new TagletOutputImpl(res2);
   7.234 +        HtmlTree result = HtmlTree.DD(body);
   7.235 +        return result;
   7.236      }
   7.237  
   7.238      /**
   7.239       * {@inheritDoc}
   7.240       */
   7.241 -    public TagletOutput throwsTagOutput(Type throwsType) {
   7.242 +    public Content throwsTagOutput(Type throwsType) {
   7.243          HtmlTree result = HtmlTree.DD(HtmlTree.CODE(htmlWriter.getLink(
   7.244                  new LinkInfoImpl(configuration, LinkInfoImpl.Kind.MEMBER, throwsType))));
   7.245 -        return new TagletOutputImpl(result);
   7.246 +        return result;
   7.247      }
   7.248  
   7.249      /**
   7.250       * {@inheritDoc}
   7.251       */
   7.252 -    public TagletOutput valueTagOutput(FieldDoc field, String constantVal,
   7.253 +    public Content valueTagOutput(FieldDoc field, String constantVal,
   7.254              boolean includeLink) {
   7.255 -        return new TagletOutputImpl(includeLink ?
   7.256 +        return includeLink ?
   7.257              htmlWriter.getDocLink(LinkInfoImpl.Kind.VALUE_TAG, field,
   7.258 -                constantVal, false) : new RawHtml(constantVal));
   7.259 +                constantVal, false) : new RawHtml(constantVal);
   7.260      }
   7.261  
   7.262      /**
   7.263       * {@inheritDoc}
   7.264       */
   7.265 -    public TagletOutputImpl commentTagsToOutput(Tag holderTag, Tag[] tags) {
   7.266 +    public Content commentTagsToOutput(Tag holderTag, Tag[] tags) {
   7.267          return commentTagsToOutput(holderTag, null, tags, false);
   7.268      }
   7.269  
   7.270      /**
   7.271       * {@inheritDoc}
   7.272       */
   7.273 -    public TagletOutputImpl commentTagsToOutput(Doc holderDoc, Tag[] tags) {
   7.274 +    public Content commentTagsToOutput(Doc holderDoc, Tag[] tags) {
   7.275          return commentTagsToOutput(null, holderDoc, tags, false);
   7.276      }
   7.277  
   7.278      /**
   7.279       * {@inheritDoc}
   7.280       */
   7.281 -    public TagletOutputImpl commentTagsToOutput(Tag holderTag,
   7.282 +    public Content commentTagsToOutput(Tag holderTag,
   7.283          Doc holderDoc, Tag[] tags, boolean isFirstSentence) {
   7.284 -        return new TagletOutputImpl(htmlWriter.commentTagsToContent(
   7.285 -            holderTag, holderDoc, tags, isFirstSentence));
   7.286 +        return htmlWriter.commentTagsToContent(
   7.287 +            holderTag, holderDoc, tags, isFirstSentence);
   7.288      }
   7.289  
   7.290      /**
     8.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/ContentBuilder.java	Tue May 14 10:14:56 2013 -0700
     8.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/ContentBuilder.java	Tue May 14 10:14:57 2013 -0700
     8.3 @@ -40,6 +40,7 @@
     8.4  
     8.5      @Override
     8.6      public void addContent(Content content) {
     8.7 +        nullCheck(content);
     8.8          if ((content instanceof ContentBuilder) && content.isEmpty())
     8.9              return;
    8.10          ensureMutableContents();
     9.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BasePropertyTaglet.java	Tue May 14 10:14:56 2013 -0700
     9.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BasePropertyTaglet.java	Tue May 14 10:14:57 2013 -0700
     9.3 @@ -26,6 +26,7 @@
     9.4  package com.sun.tools.doclets.internal.toolkit.taglets;
     9.5  
     9.6  import com.sun.javadoc.Tag;
     9.7 +import com.sun.tools.doclets.internal.toolkit.Content;
     9.8  
     9.9  /**
    9.10   * An abstract class that implements the {@link Taglet} interface and
    9.11 @@ -59,7 +60,7 @@
    9.12       * @param tagletWriter the taglet writer for output.
    9.13       * @return the TagletOutput representation of this <code>Tag</code>.
    9.14       */
    9.15 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter tagletWriter) {
    9.16 +    public Content getTagletOutput(Tag tag, TagletWriter tagletWriter) {
    9.17          return tagletWriter.propertyTagOutput(tag, getText(tagletWriter));
    9.18      }
    9.19  
    10.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseTaglet.java	Tue May 14 10:14:56 2013 -0700
    10.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseTaglet.java	Tue May 14 10:14:57 2013 -0700
    10.3 @@ -1,5 +1,5 @@
    10.4  /*
    10.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    10.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    10.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.8   *
    10.9   * This code is free software; you can redistribute it and/or modify it
   10.10 @@ -26,6 +26,7 @@
   10.11  package com.sun.tools.doclets.internal.toolkit.taglets;
   10.12  
   10.13  import com.sun.javadoc.*;
   10.14 +import com.sun.tools.doclets.internal.toolkit.Content;
   10.15  
   10.16  /**
   10.17   * An abstract class for that implements the {@link Taglet} interface.
   10.18 @@ -130,7 +131,7 @@
   10.19       * {@inheritDoc}
   10.20       * @throws IllegalArgumentException thrown when the method is not supported by the taglet.
   10.21       */
   10.22 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   10.23 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   10.24          throw new IllegalArgumentException("Method not supported in taglet " + getName() + ".");
   10.25      }
   10.26  
   10.27 @@ -138,7 +139,7 @@
   10.28       * {@inheritDoc}
   10.29       * @throws IllegalArgumentException thrown when the method is not supported by the taglet.
   10.30       */
   10.31 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   10.32 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   10.33          throw new IllegalArgumentException("Method not supported in taglet " + getName() + ".");
   10.34      }
   10.35  }
    11.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java	Tue May 14 10:14:56 2013 -0700
    11.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java	Tue May 14 10:14:57 2013 -0700
    11.3 @@ -26,6 +26,7 @@
    11.4  
    11.5  import java.util.Map;
    11.6  import com.sun.javadoc.Tag;
    11.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    11.8  
    11.9  /**
   11.10   * An inline Taglet used to denote literal code fragments.
   11.11 @@ -64,7 +65,7 @@
   11.12      /**
   11.13       * {@inheritDoc}
   11.14       */
   11.15 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   11.16 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   11.17          return writer.codeTagOutput(tag);
   11.18      }
   11.19  }
    12.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java	Tue May 14 10:14:56 2013 -0700
    12.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java	Tue May 14 10:14:57 2013 -0700
    12.3 @@ -1,5 +1,5 @@
    12.4  /*
    12.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    12.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    12.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.8   *
    12.9   * This code is free software; you can redistribute it and/or modify it
   12.10 @@ -26,6 +26,7 @@
   12.11  package com.sun.tools.doclets.internal.toolkit.taglets;
   12.12  
   12.13  import com.sun.javadoc.*;
   12.14 +import com.sun.tools.doclets.internal.toolkit.Content;
   12.15  
   12.16  /**
   12.17   * A taglet that represents the @deprecated tag.
   12.18 @@ -48,7 +49,7 @@
   12.19      /**
   12.20       * {@inheritDoc}
   12.21       */
   12.22 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   12.23 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   12.24          return writer.deprecatedTagOutput(holder);
   12.25      }
   12.26  }
    13.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DocRootTaglet.java	Tue May 14 10:14:56 2013 -0700
    13.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DocRootTaglet.java	Tue May 14 10:14:57 2013 -0700
    13.3 @@ -1,5 +1,5 @@
    13.4  /*
    13.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
    13.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    13.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.8   *
    13.9   * This code is free software; you can redistribute it and/or modify it
   13.10 @@ -26,6 +26,7 @@
   13.11  package com.sun.tools.doclets.internal.toolkit.taglets;
   13.12  
   13.13  import com.sun.javadoc.*;
   13.14 +import com.sun.tools.doclets.internal.toolkit.Content;
   13.15  
   13.16  /**
   13.17   * An inline Taglet representing {&#064;docRoot}.  This taglet is
   13.18 @@ -60,7 +61,7 @@
   13.19       * @param writer a {@link TagletWriter} Taglet writer.
   13.20       * @return the string representation of this <code>Tag</code>.
   13.21       */
   13.22 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   13.23 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   13.24          return writer.getDocRootOutput();
   13.25      }
   13.26  }
    14.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritDocTaglet.java	Tue May 14 10:14:56 2013 -0700
    14.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritDocTaglet.java	Tue May 14 10:14:57 2013 -0700
    14.3 @@ -27,6 +27,7 @@
    14.4  
    14.5  import com.sun.javadoc.*;
    14.6  import com.sun.tools.doclets.internal.toolkit.Configuration;
    14.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    14.8  import com.sun.tools.doclets.internal.toolkit.util.*;
    14.9  
   14.10  /**
   14.11 @@ -114,9 +115,9 @@
   14.12       * (class) docs.
   14.13       * @param isFirstSentence true if we only want to inherit the first sentence.
   14.14       */
   14.15 -    private TagletOutput retrieveInheritedDocumentation(TagletWriter writer,
   14.16 +    private Content retrieveInheritedDocumentation(TagletWriter writer,
   14.17              ProgramElementDoc ped, Tag holderTag, boolean isFirstSentence) {
   14.18 -        TagletOutput replacement = writer.getOutputInstance();
   14.19 +        Content replacement = writer.getOutputInstance();
   14.20  
   14.21          Configuration configuration = writer.configuration();
   14.22          Taglet inheritableTaglet = holderTag == null ?
   14.23 @@ -157,9 +158,9 @@
   14.24       * to the generated page.
   14.25       * @param tag the <code>Tag</code> representation of this custom tag.
   14.26       * @param tagletWriter the taglet writer for output.
   14.27 -     * @return the TagletOutput representation of this <code>Tag</code>.
   14.28 +     * @return the Content representation of this <code>Tag</code>.
   14.29       */
   14.30 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter tagletWriter) {
   14.31 +    public Content getTagletOutput(Tag tag, TagletWriter tagletWriter) {
   14.32          if (! (tag.holder() instanceof ProgramElementDoc)) {
   14.33              return tagletWriter.getOutputInstance();
   14.34          }
    15.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java	Tue May 14 10:14:56 2013 -0700
    15.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java	Tue May 14 10:14:57 2013 -0700
    15.3 @@ -1,5 +1,5 @@
    15.4  /*
    15.5 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
    15.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    15.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.8   *
    15.9   * This code is free software; you can redistribute it and/or modify it
   15.10 @@ -26,6 +26,8 @@
   15.11  package com.sun.tools.doclets.internal.toolkit.taglets;
   15.12  
   15.13  import com.sun.javadoc.*;
   15.14 +import com.sun.tools.doclets.formats.html.markup.RawHtml;
   15.15 +import com.sun.tools.doclets.internal.toolkit.Content;
   15.16  
   15.17  /**
   15.18   * This taglet acts as a wrapper to enable
   15.19 @@ -115,20 +117,20 @@
   15.20      /**
   15.21       * {@inheritDoc}
   15.22       */
   15.23 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer)
   15.24 +    public Content getTagletOutput(Tag tag, TagletWriter writer)
   15.25              throws IllegalArgumentException {
   15.26 -        TagletOutput output = writer.getOutputInstance();
   15.27 -        output.setOutput(legacyTaglet.toString(tag));
   15.28 +        Content output = writer.getOutputInstance();
   15.29 +        output.addContent(new RawHtml(legacyTaglet.toString(tag)));
   15.30          return output;
   15.31      }
   15.32  
   15.33      /**
   15.34       * {@inheritDoc}
   15.35       */
   15.36 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer)
   15.37 +    public Content getTagletOutput(Doc holder, TagletWriter writer)
   15.38              throws IllegalArgumentException {
   15.39 -        TagletOutput output = writer.getOutputInstance();
   15.40 -        output.setOutput(legacyTaglet.toString(holder.tags(getName())));
   15.41 +        Content output = writer.getOutputInstance();
   15.42 +        output.addContent(new RawHtml(legacyTaglet.toString(holder.tags(getName()))));
   15.43          return output;
   15.44      }
   15.45  }
    16.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java	Tue May 14 10:14:56 2013 -0700
    16.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java	Tue May 14 10:14:57 2013 -0700
    16.3 @@ -27,6 +27,7 @@
    16.4  import java.util.Map;
    16.5  
    16.6  import com.sun.javadoc.Tag;
    16.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    16.8  
    16.9  
   16.10  /**
   16.11 @@ -63,7 +64,7 @@
   16.12      /**
   16.13       * {@inheritDoc}
   16.14       */
   16.15 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   16.16 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   16.17          return writer.literalTagOutput(tag);
   16.18      }
   16.19  }
    17.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java	Tue May 14 10:14:56 2013 -0700
    17.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java	Tue May 14 10:14:57 2013 -0700
    17.3 @@ -28,6 +28,7 @@
    17.4  import java.util.*;
    17.5  
    17.6  import com.sun.javadoc.*;
    17.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    17.8  import com.sun.tools.doclets.internal.toolkit.util.*;
    17.9  
   17.10  /**
   17.11 @@ -165,12 +166,12 @@
   17.12       * @param writer the TagletWriter that will write this tag.
   17.13       * @return the TagletOutput representation of these <code>ParamTag</code>s.
   17.14       */
   17.15 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   17.16 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   17.17          if (holder instanceof ExecutableMemberDoc) {
   17.18              ExecutableMemberDoc member = (ExecutableMemberDoc) holder;
   17.19 -            TagletOutput output = getTagletOutput(false, member, writer,
   17.20 +            Content output = getTagletOutput(false, member, writer,
   17.21                  member.typeParameters(), member.typeParamTags());
   17.22 -            output.appendOutput(getTagletOutput(true, member, writer,
   17.23 +            output.addContent(getTagletOutput(true, member, writer,
   17.24                  member.parameters(), member.paramTags()));
   17.25              return output;
   17.26          } else {
   17.27 @@ -191,12 +192,12 @@
   17.28       *
   17.29       * @return the TagletOutput representation of these <code>ParamTag</code>s.
   17.30       */
   17.31 -    private TagletOutput getTagletOutput(boolean isNonTypeParams, Doc holder,
   17.32 +    private Content getTagletOutput(boolean isNonTypeParams, Doc holder,
   17.33              TagletWriter writer, Object[] formalParameters, ParamTag[] paramTags) {
   17.34 -        TagletOutput result = writer.getOutputInstance();
   17.35 +        Content result = writer.getOutputInstance();
   17.36          Set<String> alreadyDocumented = new HashSet<String>();
   17.37          if (paramTags.length > 0) {
   17.38 -            result.appendOutput(
   17.39 +            result.addContent(
   17.40                  processParamTags(isNonTypeParams, paramTags,
   17.41                  getRankMap(formalParameters), writer, alreadyDocumented)
   17.42              );
   17.43 @@ -204,7 +205,7 @@
   17.44          if (alreadyDocumented.size() != formalParameters.length) {
   17.45              //Some parameters are missing corresponding @param tags.
   17.46              //Try to inherit them.
   17.47 -            result.appendOutput(getInheritedTagletOutput (isNonTypeParams, holder,
   17.48 +            result.addContent(getInheritedTagletOutput (isNonTypeParams, holder,
   17.49                  writer, formalParameters, alreadyDocumented));
   17.50          }
   17.51          return result;
   17.52 @@ -214,10 +215,10 @@
   17.53       * Loop through each indivitual parameter.  It it does not have a
   17.54       * corresponding param tag, try to inherit it.
   17.55       */
   17.56 -    private TagletOutput getInheritedTagletOutput(boolean isNonTypeParams, Doc holder,
   17.57 +    private Content getInheritedTagletOutput(boolean isNonTypeParams, Doc holder,
   17.58              TagletWriter writer, Object[] formalParameters,
   17.59              Set<String> alreadyDocumented) {
   17.60 -        TagletOutput result = writer.getOutputInstance();
   17.61 +        Content result = writer.getOutputInstance();
   17.62          if ((! alreadyDocumented.contains(null)) &&
   17.63                  holder instanceof MethodDoc) {
   17.64              for (int i = 0; i < formalParameters.length; i++) {
   17.65 @@ -231,7 +232,7 @@
   17.66                          String.valueOf(i), ! isNonTypeParams));
   17.67                  if (inheritedDoc.inlineTags != null &&
   17.68                          inheritedDoc.inlineTags.length > 0) {
   17.69 -                    result.appendOutput(
   17.70 +                    result.addContent(
   17.71                          processParamTag(isNonTypeParams, writer,
   17.72                              (ParamTag) inheritedDoc.holderTag,
   17.73                              isNonTypeParams ?
   17.74 @@ -261,12 +262,12 @@
   17.75       *                of a rank of a parameter to its name.  This is
   17.76       *                used to ensure that the right name is used
   17.77       *                when parameter documentation is inherited.
   17.78 -     * @return the TagletOutput representation of this <code>Tag</code>.
   17.79 +     * @return the Content representation of this <code>Tag</code>.
   17.80       */
   17.81 -    private TagletOutput processParamTags(boolean isNonTypeParams,
   17.82 +    private Content processParamTags(boolean isNonTypeParams,
   17.83              ParamTag[] paramTags, Map<String, String> rankMap, TagletWriter writer,
   17.84              Set<String> alreadyDocumented) {
   17.85 -        TagletOutput result = writer.getOutputInstance();
   17.86 +        Content result = writer.getOutputInstance();
   17.87          if (paramTags.length > 0) {
   17.88              for (int i = 0; i < paramTags.length; ++i) {
   17.89                  ParamTag pt = paramTags[i];
   17.90 @@ -287,7 +288,7 @@
   17.91                             "doclet.Type_Parameters_dup_warn",
   17.92                         paramName);
   17.93                  }
   17.94 -                result.appendOutput(processParamTag(isNonTypeParams, writer, pt,
   17.95 +                result.addContent(processParamTag(isNonTypeParams, writer, pt,
   17.96                       pt.parameterName(), alreadyDocumented.size() == 0));
   17.97                  alreadyDocumented.add(rank);
   17.98              }
   17.99 @@ -295,7 +296,7 @@
  17.100          return result;
  17.101      }
  17.102      /**
  17.103 -     * Convert the individual ParamTag into TagletOutput.
  17.104 +     * Convert the individual ParamTag into Content.
  17.105       *
  17.106       * @param isNonTypeParams true if this is just a regular param tag.  False
  17.107       *                        if this is a type param tag.
  17.108 @@ -307,16 +308,16 @@
  17.109       * @param isFirstParam    true if this is the first param tag being printed.
  17.110       *
  17.111       */
  17.112 -    private TagletOutput processParamTag(boolean isNonTypeParams,
  17.113 +    private Content processParamTag(boolean isNonTypeParams,
  17.114              TagletWriter writer, ParamTag paramTag, String name,
  17.115              boolean isFirstParam) {
  17.116 -        TagletOutput result = writer.getOutputInstance();
  17.117 +        Content result = writer.getOutputInstance();
  17.118          String header = writer.configuration().getText(
  17.119              isNonTypeParams ? "doclet.Parameters" : "doclet.TypeParameters");
  17.120          if (isFirstParam) {
  17.121 -            result.appendOutput(writer.getParamHeader(header));
  17.122 +            result.addContent(writer.getParamHeader(header));
  17.123          }
  17.124 -        result.appendOutput(writer.paramTagOutput(paramTag,
  17.125 +        result.addContent(writer.paramTagOutput(paramTag,
  17.126              name));
  17.127          return result;
  17.128      }
    18.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java	Tue May 14 10:14:56 2013 -0700
    18.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java	Tue May 14 10:14:57 2013 -0700
    18.3 @@ -26,6 +26,7 @@
    18.4  package com.sun.tools.doclets.internal.toolkit.taglets;
    18.5  
    18.6  import com.sun.javadoc.*;
    18.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    18.8  import com.sun.tools.doclets.internal.toolkit.util.*;
    18.9  
   18.10  /**
   18.11 @@ -73,7 +74,7 @@
   18.12      /**
   18.13       * {@inheritDoc}
   18.14       */
   18.15 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   18.16 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   18.17          Type returnType = ((MethodDoc) holder).returnType();
   18.18          Tag[] tags = holder.tags(name);
   18.19  
    19.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java	Tue May 14 10:14:56 2013 -0700
    19.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java	Tue May 14 10:14:57 2013 -0700
    19.3 @@ -26,6 +26,7 @@
    19.4  package com.sun.tools.doclets.internal.toolkit.taglets;
    19.5  
    19.6  import com.sun.javadoc.*;
    19.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    19.8  import com.sun.tools.doclets.internal.toolkit.util.*;
    19.9  
   19.10  /**
   19.11 @@ -61,7 +62,7 @@
   19.12      /**
   19.13       * {@inheritDoc}
   19.14       */
   19.15 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   19.16 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   19.17          SeeTag[] tags = holder.seeTags();
   19.18          if (tags.length == 0 && holder instanceof MethodDoc) {
   19.19              DocFinder.Output inheritedDoc =
    20.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SimpleTaglet.java	Tue May 14 10:14:56 2013 -0700
    20.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SimpleTaglet.java	Tue May 14 10:14:57 2013 -0700
    20.3 @@ -26,6 +26,7 @@
    20.4  package com.sun.tools.doclets.internal.toolkit.taglets;
    20.5  
    20.6  import com.sun.javadoc.*;
    20.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    20.8  import com.sun.tools.doclets.internal.toolkit.util.DocFinder;
    20.9  
   20.10  /**
   20.11 @@ -214,14 +215,14 @@
   20.12      /**
   20.13       * {@inheritDoc}
   20.14       */
   20.15 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   20.16 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   20.17          return header == null || tag == null ? null : writer.simpleTagOutput(tag, header);
   20.18      }
   20.19  
   20.20      /**
   20.21       * {@inheritDoc}
   20.22       */
   20.23 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   20.24 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   20.25          if (header == null || holder.tags(getName()).length == 0) {
   20.26              return null;
   20.27          }
    21.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java	Tue May 14 10:14:56 2013 -0700
    21.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java	Tue May 14 10:14:57 2013 -0700
    21.3 @@ -26,6 +26,7 @@
    21.4  package com.sun.tools.doclets.internal.toolkit.taglets;
    21.5  
    21.6  import com.sun.javadoc.*;
    21.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    21.8  
    21.9  /**
   21.10   * The interface for a custom tag used by Doclets. A custom
   21.11 @@ -132,14 +133,14 @@
   21.12  
   21.13      /**
   21.14       * Given the <code>Tag</code> representation of this custom
   21.15 -     * tag, return its TagletOutput representation, which is output
   21.16 +     * tag, return its Content representation, which is output
   21.17       * to the generated page.
   21.18       * @param tag the <code>Tag</code> representation of this custom tag.
   21.19       * @param writer a {@link TagletWriter} Taglet writer.
   21.20       * @throws IllegalArgumentException thrown when the method is not supported by the taglet.
   21.21 -     * @return the TagletOutput representation of this <code>Tag</code>.
   21.22 +     * @return the Content representation of this <code>Tag</code>.
   21.23       */
   21.24 -    public abstract TagletOutput getTagletOutput(Tag tag, TagletWriter writer) throws IllegalArgumentException;
   21.25 +    public abstract Content getTagletOutput(Tag tag, TagletWriter writer) throws IllegalArgumentException;
   21.26  
   21.27      /**
   21.28       * Given a <code>Doc</code> object, check if it holds any tags of
   21.29 @@ -150,7 +151,7 @@
   21.30       * @throws IllegalArgumentException thrown when the method is not supported by the taglet.
   21.31       * @return the TagletOutput representation of this <code>Tag</code>.
   21.32       */
   21.33 -    public abstract TagletOutput getTagletOutput(Doc holder, TagletWriter writer) throws IllegalArgumentException;
   21.34 +    public abstract Content getTagletOutput(Doc holder, TagletWriter writer) throws IllegalArgumentException;
   21.35  
   21.36      @Override
   21.37      public abstract String toString();
    22.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletOutput.java	Tue May 14 10:14:56 2013 -0700
    22.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3 @@ -1,57 +0,0 @@
    22.4 -/*
    22.5 - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    22.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.7 - *
    22.8 - * This code is free software; you can redistribute it and/or modify it
    22.9 - * under the terms of the GNU General Public License version 2 only, as
   22.10 - * published by the Free Software Foundation.  Oracle designates this
   22.11 - * particular file as subject to the "Classpath" exception as provided
   22.12 - * by Oracle in the LICENSE file that accompanied this code.
   22.13 - *
   22.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
   22.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   22.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   22.17 - * version 2 for more details (a copy is included in the LICENSE file that
   22.18 - * accompanied this code).
   22.19 - *
   22.20 - * You should have received a copy of the GNU General Public License version
   22.21 - * 2 along with this work; if not, write to the Free Software Foundation,
   22.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   22.23 - *
   22.24 - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22.25 - * or visit www.oracle.com if you need additional information or have any
   22.26 - * questions.
   22.27 - */
   22.28 -
   22.29 -package com.sun.tools.doclets.internal.toolkit.taglets;
   22.30 -
   22.31 -/**
   22.32 - * The interface for taglet output.  This interface is needed because
   22.33 - * different doclets work with different formats of output.  A single taglet can
   22.34 - * work with any doclet that provides an implementation of taglet output.
   22.35 - *
   22.36 - *  <p><b>This is NOT part of any supported API.
   22.37 - *  If you write code that depends on this, you do so at your own risk.
   22.38 - *  This code and its internal interfaces are subject to change or
   22.39 - *  deletion without notice.</b>
   22.40 - *
   22.41 - * @author Jamie Ho
   22.42 - * @since 1.5
   22.43 - */
   22.44 -public interface TagletOutput {
   22.45 -
   22.46 -    /**
   22.47 -     * Set the output for the taglet.
   22.48 -     * @param o an object representing the output.
   22.49 -     */
   22.50 -    public abstract void setOutput(Object o);
   22.51 -
   22.52 -    /**
   22.53 -     * Append the given output to this output.
   22.54 -     * @param o a TagletOutput representing the output.
   22.55 -     */
   22.56 -    public abstract void appendOutput(TagletOutput o);
   22.57 -
   22.58 -    @Override
   22.59 -    public String toString();
   22.60 -}
    23.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java	Tue May 14 10:14:56 2013 -0700
    23.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java	Tue May 14 10:14:57 2013 -0700
    23.3 @@ -55,7 +55,7 @@
    23.4      /**
    23.5       * @return an instance of an output object.
    23.6       */
    23.7 -    public abstract TagletOutput getOutputInstance();
    23.8 +    public abstract Content getOutputInstance();
    23.9  
   23.10      /**
   23.11       * Return the output for a {@code...} tag.
   23.12 @@ -63,13 +63,13 @@
   23.13       * @param tag the tag.
   23.14       * @return the output of the taglet.
   23.15       */
   23.16 -    protected abstract TagletOutput codeTagOutput(Tag tag);
   23.17 +    protected abstract Content codeTagOutput(Tag tag);
   23.18  
   23.19      /**
   23.20       * Returns the output for the DocRoot inline tag.
   23.21       * @return the output for the DocRoot inline tag.
   23.22       */
   23.23 -    protected abstract TagletOutput getDocRootOutput();
   23.24 +    protected abstract Content getDocRootOutput();
   23.25  
   23.26      /**
   23.27       * Return the deprecated tag output.
   23.28 @@ -77,7 +77,7 @@
   23.29       * @param doc the doc to write deprecated documentation for.
   23.30       * @return the output of the deprecated tag.
   23.31       */
   23.32 -    protected abstract TagletOutput deprecatedTagOutput(Doc doc);
   23.33 +    protected abstract Content deprecatedTagOutput(Doc doc);
   23.34  
   23.35      /**
   23.36       * Return the output for a {@literal...} tag.
   23.37 @@ -85,7 +85,7 @@
   23.38       * @param tag the tag.
   23.39       * @return the output of the taglet.
   23.40       */
   23.41 -    protected abstract TagletOutput literalTagOutput(Tag tag);
   23.42 +    protected abstract Content literalTagOutput(Tag tag);
   23.43  
   23.44      /**
   23.45       * Returns {@link MessageRetriever} for output purposes.
   23.46 @@ -100,7 +100,7 @@
   23.47       * @param header the header to display.
   23.48       * @return the header for the param tags.
   23.49       */
   23.50 -    protected abstract TagletOutput getParamHeader(String header);
   23.51 +    protected abstract Content getParamHeader(String header);
   23.52  
   23.53      /**
   23.54       * Return the output for param tags.
   23.55 @@ -109,7 +109,7 @@
   23.56       * @param paramName the name of the parameter.
   23.57       * @return the output of the param tag.
   23.58       */
   23.59 -    protected abstract TagletOutput paramTagOutput(ParamTag paramTag,
   23.60 +    protected abstract Content paramTagOutput(ParamTag paramTag,
   23.61          String paramName);
   23.62  
   23.63      /**
   23.64 @@ -119,7 +119,7 @@
   23.65       * @param prefix the text with which to prefix the property name.
   23.66       * @return the output of the param tag.
   23.67       */
   23.68 -    protected abstract TagletOutput propertyTagOutput(Tag propertyTag, String prefix);
   23.69 +    protected abstract Content propertyTagOutput(Tag propertyTag, String prefix);
   23.70  
   23.71      /**
   23.72       * Return the return tag output.
   23.73 @@ -127,7 +127,7 @@
   23.74       * @param returnTag the return tag to output.
   23.75       * @return the output of the return tag.
   23.76       */
   23.77 -    protected abstract TagletOutput returnTagOutput(Tag returnTag);
   23.78 +    protected abstract Content returnTagOutput(Tag returnTag);
   23.79  
   23.80      /**
   23.81       * Return the see tag output.
   23.82 @@ -135,7 +135,7 @@
   23.83       * @param seeTags the array of See tags.
   23.84       * @return the output of the see tags.
   23.85       */
   23.86 -    protected abstract TagletOutput seeTagOutput(Doc holder, SeeTag[] seeTags);
   23.87 +    protected abstract Content seeTagOutput(Doc holder, SeeTag[] seeTags);
   23.88  
   23.89      /**
   23.90       * Return the output for a simple tag.
   23.91 @@ -143,7 +143,7 @@
   23.92       * @param simpleTags the array of simple tags.
   23.93       * @return the output of the simple tags.
   23.94       */
   23.95 -    protected abstract TagletOutput simpleTagOutput(Tag[] simpleTags,
   23.96 +    protected abstract Content simpleTagOutput(Tag[] simpleTags,
   23.97          String header);
   23.98  
   23.99      /**
  23.100 @@ -152,14 +152,14 @@
  23.101       * @param simpleTag the simple tag.
  23.102       * @return the output of the simple tag.
  23.103       */
  23.104 -    protected abstract TagletOutput simpleTagOutput(Tag simpleTag, String header);
  23.105 +    protected abstract Content simpleTagOutput(Tag simpleTag, String header);
  23.106  
  23.107      /**
  23.108       * Return the header for the throws tag.
  23.109       *
  23.110       * @return the header for the throws tag.
  23.111       */
  23.112 -    protected abstract TagletOutput getThrowsHeader();
  23.113 +    protected abstract Content getThrowsHeader();
  23.114  
  23.115      /**
  23.116       * Return the header for the throws tag.
  23.117 @@ -167,7 +167,7 @@
  23.118       * @param throwsTag the throws tag.
  23.119       * @return the output of the throws tag.
  23.120       */
  23.121 -    protected abstract TagletOutput throwsTagOutput(ThrowsTag throwsTag);
  23.122 +    protected abstract Content throwsTagOutput(ThrowsTag throwsTag);
  23.123  
  23.124      /**
  23.125       * Return the output for the throws tag.
  23.126 @@ -175,7 +175,7 @@
  23.127       * @param throwsType the throws type.
  23.128       * @return the output of the throws type.
  23.129       */
  23.130 -    protected abstract TagletOutput throwsTagOutput(Type throwsType);
  23.131 +    protected abstract Content throwsTagOutput(Type throwsType);
  23.132  
  23.133      /**
  23.134       * Return the output for the value tag.
  23.135 @@ -186,7 +186,7 @@
  23.136       *                    constant field itself.
  23.137       * @return the output of the value tag.
  23.138       */
  23.139 -    protected abstract TagletOutput valueTagOutput(FieldDoc field,
  23.140 +    protected abstract Content valueTagOutput(FieldDoc field,
  23.141          String constantVal, boolean includeLink);
  23.142  
  23.143      /**
  23.144 @@ -200,10 +200,10 @@
  23.145       * @param output the output buffer to store the output in.
  23.146       */
  23.147      public static void genTagOuput(TagletManager tagletManager, Doc doc,
  23.148 -            Taglet[] taglets, TagletWriter writer, TagletOutput output) {
  23.149 +            Taglet[] taglets, TagletWriter writer, Content output) {
  23.150          tagletManager.checkTags(doc, doc.tags(), false);
  23.151          tagletManager.checkTags(doc, doc.inlineTags(), true);
  23.152 -        TagletOutput currentOutput = null;
  23.153 +        Content currentOutput = null;
  23.154          for (int i = 0; i < taglets.length; i++) {
  23.155              currentOutput = null;
  23.156              if (doc instanceof ClassDoc && taglets[i] instanceof ParamTaglet) {
  23.157 @@ -228,7 +228,7 @@
  23.158              }
  23.159              if (currentOutput != null) {
  23.160                  tagletManager.seenCustomTag(taglets[i].getName());
  23.161 -                output.appendOutput(currentOutput);
  23.162 +                output.addContent(currentOutput);
  23.163              }
  23.164          }
  23.165      }
  23.166 @@ -242,7 +242,7 @@
  23.167       * @param tagletWriter The taglet writer to write the output.
  23.168       * @return The output of the inline tag.
  23.169       */
  23.170 -    public static TagletOutput getInlineTagOuput(TagletManager tagletManager,
  23.171 +    public static Content getInlineTagOuput(TagletManager tagletManager,
  23.172              Tag holderTag, Tag inlineTag, TagletWriter tagletWriter) {
  23.173          Taglet[] definedTags = tagletManager.getInlineCustomTaglets();
  23.174          //This is a custom inline tag.
  23.175 @@ -251,7 +251,7 @@
  23.176                  //Given a name of a seen custom tag, remove it from the
  23.177                  // set of unseen custom tags.
  23.178                  tagletManager.seenCustomTag(definedTags[j].getName());
  23.179 -                TagletOutput output = definedTags[j].getTagletOutput(
  23.180 +                Content output = definedTags[j].getTagletOutput(
  23.181                      holderTag != null &&
  23.182                          definedTags[j].getName().equals("inheritDoc") ?
  23.183                              holderTag : inlineTag, tagletWriter);
  23.184 @@ -270,9 +270,9 @@
  23.185       * @param holderTag the tag that holds the documentation.
  23.186       * @param tags   array of text tags and inline tags (often alternating)
  23.187       *               present in the text of interest for this doc.
  23.188 -     * @return the {@link TagletOutput} representing the comments.
  23.189 +     * @return the {@link Content} representing the comments.
  23.190       */
  23.191 -    public abstract TagletOutput commentTagsToOutput(Tag holderTag, Tag[] tags);
  23.192 +    public abstract Content commentTagsToOutput(Tag holderTag, Tag[] tags);
  23.193  
  23.194      /**
  23.195       * Converts inline tags and text to TagOutput, expanding the
  23.196 @@ -283,9 +283,9 @@
  23.197       * @param holderDoc specific doc where comment resides.
  23.198       * @param tags   array of text tags and inline tags (often alternating)
  23.199       *               present in the text of interest for this doc.
  23.200 -     * @return the {@link TagletOutput} representing the comments.
  23.201 +     * @return the {@link Content} representing the comments.
  23.202       */
  23.203 -    public abstract TagletOutput commentTagsToOutput(Doc holderDoc, Tag[] tags);
  23.204 +    public abstract Content commentTagsToOutput(Doc holderDoc, Tag[] tags);
  23.205  
  23.206      /**
  23.207       * Converts inline tags and text to TagOutput, expanding the
  23.208 @@ -298,9 +298,9 @@
  23.209       * @param tags   array of text tags and inline tags (often alternating)
  23.210       *               present in the text of interest for this doc.
  23.211       * @param isFirstSentence true if this is the first sentence.
  23.212 -     * @return the {@link TagletOutput} representing the comments.
  23.213 +     * @return the {@link Content} representing the comments.
  23.214       */
  23.215 -    public abstract TagletOutput commentTagsToOutput(Tag holderTag,
  23.216 +    public abstract Content commentTagsToOutput(Tag holderTag,
  23.217          Doc holderDoc, Tag[] tags, boolean isFirstSentence);
  23.218  
  23.219      /**
    24.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java	Tue May 14 10:14:56 2013 -0700
    24.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java	Tue May 14 10:14:57 2013 -0700
    24.3 @@ -28,6 +28,7 @@
    24.4  import java.util.*;
    24.5  
    24.6  import com.sun.javadoc.*;
    24.7 +import com.sun.tools.doclets.internal.toolkit.Content;
    24.8  import com.sun.tools.doclets.internal.toolkit.util.*;
    24.9  
   24.10  /**
   24.11 @@ -83,10 +84,10 @@
   24.12      /**
   24.13       * Add links for exceptions that are declared but not documented.
   24.14       */
   24.15 -    private TagletOutput linkToUndocumentedDeclaredExceptions(
   24.16 +    private Content linkToUndocumentedDeclaredExceptions(
   24.17              Type[] declaredExceptionTypes, Set<String> alreadyDocumented,
   24.18              TagletWriter writer) {
   24.19 -        TagletOutput result = writer.getOutputInstance();
   24.20 +        Content result = writer.getOutputInstance();
   24.21          //Add links to the exceptions declared but not documented.
   24.22          for (int i = 0; i < declaredExceptionTypes.length; i++) {
   24.23              if (declaredExceptionTypes[i].asClassDoc() != null &&
   24.24 @@ -95,9 +96,9 @@
   24.25                  ! alreadyDocumented.contains(
   24.26                      declaredExceptionTypes[i].asClassDoc().qualifiedName())) {
   24.27                  if (alreadyDocumented.size() == 0) {
   24.28 -                    result.appendOutput(writer.getThrowsHeader());
   24.29 +                    result.addContent(writer.getThrowsHeader());
   24.30                  }
   24.31 -                result.appendOutput(writer.throwsTagOutput(declaredExceptionTypes[i]));
   24.32 +                result.addContent(writer.throwsTagOutput(declaredExceptionTypes[i]));
   24.33                  alreadyDocumented.add(declaredExceptionTypes[i].asClassDoc().name());
   24.34              }
   24.35          }
   24.36 @@ -108,10 +109,10 @@
   24.37       * Inherit throws documentation for exceptions that were declared but not
   24.38       * documented.
   24.39       */
   24.40 -    private TagletOutput inheritThrowsDocumentation(Doc holder,
   24.41 +    private Content inheritThrowsDocumentation(Doc holder,
   24.42              Type[] declaredExceptionTypes, Set<String> alreadyDocumented,
   24.43              TagletWriter writer) {
   24.44 -        TagletOutput result = writer.getOutputInstance();
   24.45 +        Content result = writer.getOutputInstance();
   24.46          if (holder instanceof MethodDoc) {
   24.47              Set<Tag> declaredExceptionTags = new LinkedHashSet<Tag>();
   24.48              for (int j = 0; j < declaredExceptionTypes.length; j++) {
   24.49 @@ -125,7 +126,7 @@
   24.50                  }
   24.51                  declaredExceptionTags.addAll(inheritedDoc.tagList);
   24.52              }
   24.53 -            result.appendOutput(throwsTagsOutput(
   24.54 +            result.addContent(throwsTagsOutput(
   24.55                  declaredExceptionTags.toArray(new ThrowsTag[] {}),
   24.56                  writer, alreadyDocumented, false));
   24.57          }
   24.58 @@ -135,18 +136,18 @@
   24.59      /**
   24.60       * {@inheritDoc}
   24.61       */
   24.62 -    public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) {
   24.63 +    public Content getTagletOutput(Doc holder, TagletWriter writer) {
   24.64          ExecutableMemberDoc execHolder = (ExecutableMemberDoc) holder;
   24.65          ThrowsTag[] tags = execHolder.throwsTags();
   24.66 -        TagletOutput result = writer.getOutputInstance();
   24.67 +        Content result = writer.getOutputInstance();
   24.68          HashSet<String> alreadyDocumented = new HashSet<String>();
   24.69          if (tags.length > 0) {
   24.70 -            result.appendOutput(throwsTagsOutput(
   24.71 +            result.addContent(throwsTagsOutput(
   24.72                  execHolder.throwsTags(), writer, alreadyDocumented, true));
   24.73          }
   24.74 -        result.appendOutput(inheritThrowsDocumentation(holder,
   24.75 +        result.addContent(inheritThrowsDocumentation(holder,
   24.76              execHolder.thrownExceptionTypes(), alreadyDocumented, writer));
   24.77 -        result.appendOutput(linkToUndocumentedDeclaredExceptions(
   24.78 +        result.addContent(linkToUndocumentedDeclaredExceptions(
   24.79              execHolder.thrownExceptionTypes(), alreadyDocumented, writer));
   24.80          return result;
   24.81      }
   24.82 @@ -160,11 +161,11 @@
   24.83       * @param alreadyDocumented the set of exceptions that have already
   24.84       *        been documented.
   24.85       * @param allowDups True if we allow duplicate throws tags to be documented.
   24.86 -     * @return the TagletOutput representation of this <code>Tag</code>.
   24.87 +     * @return the Content representation of this <code>Tag</code>.
   24.88       */
   24.89 -    protected TagletOutput throwsTagsOutput(ThrowsTag[] throwTags,
   24.90 +    protected Content throwsTagsOutput(ThrowsTag[] throwTags,
   24.91          TagletWriter writer, Set<String> alreadyDocumented, boolean allowDups) {
   24.92 -        TagletOutput result = writer.getOutputInstance();
   24.93 +        Content result = writer.getOutputInstance();
   24.94          if (throwTags.length > 0) {
   24.95              for (int i = 0; i < throwTags.length; ++i) {
   24.96                  ThrowsTag tt = throwTags[i];
   24.97 @@ -174,9 +175,9 @@
   24.98                      continue;
   24.99                  }
  24.100                  if (alreadyDocumented.size() == 0) {
  24.101 -                    result.appendOutput(writer.getThrowsHeader());
  24.102 +                    result.addContent(writer.getThrowsHeader());
  24.103                  }
  24.104 -                result.appendOutput(writer.throwsTagOutput(tt));
  24.105 +                result.addContent(writer.throwsTagOutput(tt));
  24.106                  alreadyDocumented.add(cd != null ?
  24.107                      cd.qualifiedName() : tt.exceptionName());
  24.108              }
    25.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java	Tue May 14 10:14:56 2013 -0700
    25.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java	Tue May 14 10:14:57 2013 -0700
    25.3 @@ -28,8 +28,8 @@
    25.4  import java.util.*;
    25.5  
    25.6  import com.sun.javadoc.*;
    25.7 -import com.sun.tools.doclets.formats.html.markup.StringContent;
    25.8  import com.sun.tools.doclets.internal.toolkit.Configuration;
    25.9 +import com.sun.tools.doclets.internal.toolkit.Content;
   25.10  import com.sun.tools.doclets.internal.toolkit.util.*;
   25.11  
   25.12  /**
   25.13 @@ -161,7 +161,7 @@
   25.14      /**
   25.15       * {@inheritDoc}
   25.16       */
   25.17 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   25.18 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   25.19          FieldDoc field = getFieldDoc(
   25.20              writer.configuration(), tag, tag.text());
   25.21          if (field == null) {
    26.1 --- a/test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java	Tue May 14 10:14:56 2013 -0700
    26.2 +++ b/test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java	Tue May 14 10:14:57 2013 -0700
    26.3 @@ -1,5 +1,5 @@
    26.4  /*
    26.5 - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
    26.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    26.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.8   *
    26.9   * This code is free software; you can redistribute it and/or modify it
   26.10 @@ -55,7 +55,7 @@
   26.11      /**
   26.12       * {@inheritDoc}
   26.13       */
   26.14 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   26.15 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   26.16          ArrayList inlineTags = new ArrayList();
   26.17          inlineTags.add(new TextTag(tag.holder(), "<b>"));
   26.18          inlineTags.addAll(Arrays.asList(tag.inlineTags()));
    27.1 --- a/test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java	Tue May 14 10:14:56 2013 -0700
    27.2 +++ b/test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java	Tue May 14 10:14:57 2013 -0700
    27.3 @@ -1,5 +1,5 @@
    27.4  /*
    27.5 - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
    27.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    27.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.8   *
    27.9   * This code is free software; you can redistribute it and/or modify it
   27.10 @@ -57,7 +57,7 @@
   27.11      /**
   27.12       * {@inheritDoc}
   27.13       */
   27.14 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   27.15 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   27.16          ArrayList inlineTags = new ArrayList();
   27.17          inlineTags.add(new TextTag(tag.holder(), "<font color=\"green\">"));
   27.18          inlineTags.addAll(Arrays.asList(tag.inlineTags()));
    28.1 --- a/test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java	Tue May 14 10:14:56 2013 -0700
    28.2 +++ b/test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java	Tue May 14 10:14:57 2013 -0700
    28.3 @@ -1,5 +1,5 @@
    28.4  /*
    28.5 - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
    28.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
    28.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.8   *
    28.9   * This code is free software; you can redistribute it and/or modify it
   28.10 @@ -57,7 +57,7 @@
   28.11      /**
   28.12       * {@inheritDoc}
   28.13       */
   28.14 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   28.15 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   28.16          ArrayList inlineTags = new ArrayList();
   28.17          inlineTags.add(new TextTag(tag.holder(), "<u>"));
   28.18          inlineTags.addAll(Arrays.asList(tag.inlineTags()));
    29.1 --- a/test/com/sun/javadoc/testTaglets/taglets/Foo.java	Tue May 14 10:14:56 2013 -0700
    29.2 +++ b/test/com/sun/javadoc/testTaglets/taglets/Foo.java	Tue May 14 10:14:57 2013 -0700
    29.3 @@ -1,5 +1,5 @@
    29.4  /*
    29.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
    29.6 + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
    29.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    29.8   *
    29.9   * This code is free software; you can redistribute it and/or modify it
   29.10 @@ -48,7 +48,7 @@
   29.11      /**
   29.12       * {@inheritDoc}
   29.13       */
   29.14 -    public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) {
   29.15 +    public Content getTagletOutput(Tag tag, TagletWriter writer) {
   29.16          ArrayList inlineTags = new ArrayList();
   29.17          inlineTags.add(new TextTag(tag.holder(), "<dt><span class=\"strong\">Foo:</span></dt><dd>"));
   29.18          inlineTags.addAll(Arrays.asList(tag.inlineTags()));

mercurial