# HG changeset patch # User jjg # Date 1490291896 25200 # Node ID 4d0903f1f311aa5aad57ebe1196bff14d30cedf5 # Parent 8efb26290858e381ebcba97fedfc3a28edc671bf 8176836: Provide Taglet with context Reviewed-by: ksrini diff -r 8efb26290858 -r 4d0903f1f311 langtools/src/jdk.javadoc/share/classes/jdk/javadoc/doclet/Taglet.java --- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/doclet/Taglet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/doclet/Taglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -28,6 +28,8 @@ import java.util.List; import java.util.Set; +import javax.lang.model.element.Element; + import com.sun.source.doctree.DocTree; /** @@ -65,18 +67,34 @@ String getName(); /** + * Initializes this taglet with the given doclet environment and doclet. + * + * @apiNote + * The environment may be used to access utility classes for + * {@link javax.lang.model.util.Elements elements} and + * {@link javax.lang.model.util.Types types} if needed. + * + * @implSpec + * This implementation does nothing. + * + * @param env the environment in which the doclet and taglet are running + * @param doclet the doclet that instantiated this taglet + */ + default void init(DocletEnvironment env, Doclet doclet) { } + + /** * Returns the string representation of a series of instances of * this tag to be included in the generated output. * If this taglet is for an {@link #isInlineTag inline} tag} it will * be called once per instance of the tag, each time with a singleton list. * Otherwise, if this tag is a block tag, it will be called once per - * comment, with a list of all the instances of the tag in the comment. - * @param tags the list of {@code DocTree} containing one or more - * instances of this tag + * comment, with a list of all the instances of the tag in a comment. + * @param tags the list of instances of this tag + * @param element the element to which the enclosing comment belongs * @return the string representation of the tags to be included in * the generated output */ - String toString(List tags); + String toString(List tags, Element element); /** * The kind of location in which a tag may be used. diff -r 8efb26290858 -r 4d0903f1f311 langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConfigurationImpl.java --- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConfigurationImpl.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConfigurationImpl.java Thu Mar 23 10:58:16 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -240,7 +240,8 @@ * Constructor. Initializes resource for the * {@link com.sun.tools.doclets.internal.toolkit.util.MessageRetriever MessageRetriever}. */ - public ConfigurationImpl() { + public ConfigurationImpl(Doclet doclet) { + super(doclet); resources = new Resources(this, Configuration.sharedResourceBundleName, "jdk.javadoc.internal.doclets.formats.html.resources.standard"); diff -r 8efb26290858 -r 4d0903f1f311 langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java --- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java Thu Mar 23 10:58:16 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,7 @@ public class HtmlDoclet extends AbstractDoclet { public HtmlDoclet() { - configuration = new ConfigurationImpl(); + configuration = new ConfigurationImpl(this); } @Override // defined by Doclet diff -r 8efb26290858 -r 4d0903f1f311 langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Configuration.java --- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Configuration.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Configuration.java Thu Mar 23 10:58:16 2017 -0700 @@ -74,6 +74,10 @@ * @author Jamie Ho */ public abstract class Configuration { + /** + * The doclet that created this configuration. + */ + public final Doclet doclet; /** * The factory for builders. @@ -342,8 +346,10 @@ "jdk.javadoc.internal.doclets.toolkit.resources.doclets"; /** * Constructs the configurations needed by the doclet. + * @param doclet the doclet that created this configuration */ - public Configuration() { + public Configuration(Doclet doclet) { + this.doclet = doclet; excludedDocFileDirs = new HashSet<>(); excludedQualifiers = new HashSet<>(); setTabWidth(DocletConstants.DEFAULT_TAB_STOP_LENGTH); diff -r 8efb26290858 -r 4d0903f1f311 langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java --- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java Thu Mar 23 10:58:16 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,7 @@ package jdk.javadoc.internal.doclets.toolkit.taglets; import java.io.*; +import java.lang.reflect.InvocationTargetException; import java.util.*; import javax.lang.model.element.Element; @@ -39,6 +40,8 @@ import javax.tools.StandardJavaFileManager; import com.sun.source.doctree.DocTree; +import jdk.javadoc.doclet.Doclet; +import jdk.javadoc.doclet.DocletEnvironment; import jdk.javadoc.internal.doclets.toolkit.Configuration; import jdk.javadoc.internal.doclets.toolkit.Messages; import jdk.javadoc.internal.doclets.toolkit.Resources; @@ -125,6 +128,9 @@ */ private List serializedFormTags; + private final DocletEnvironment docEnv; + private final Doclet doclet; + private final Messages messages; private final Resources resources; @@ -184,7 +190,7 @@ * @param showversion true if we want to use @version tags. * @param showauthor true if we want to use @author tags. * @param javafx indicates whether javafx is active. - * @param message the message retriever to print warnings. + * @param configuration the configuration for this taglet manager */ public TagletManager(boolean nosince, boolean showversion, boolean showauthor, boolean javafx, @@ -199,6 +205,8 @@ this.showversion = showversion; this.showauthor = showauthor; this.javafx = javafx; + this.docEnv = configuration.docEnv; + this.doclet = configuration.doclet; this.messages = configuration.getMessages(); this.resources = configuration.getResources(); initStandardTaglets(); @@ -236,7 +244,7 @@ */ public void addCustomTag(String classname, JavaFileManager fileManager, String tagletPath) { try { - ClassLoader tagClassLoader = null; + ClassLoader tagClassLoader; if (!fileManager.hasLocation(TAGLET_PATH)) { List paths = new ArrayList<>(); if (tagletPath != null) { @@ -249,9 +257,11 @@ } } tagClassLoader = fileManager.getClassLoader(TAGLET_PATH); - Class customTagClass = tagClassLoader.loadClass(classname); - Object instance = customTagClass.getConstructor().newInstance(); - Taglet newLegacy = new UserTaglet((jdk.javadoc.doclet.Taglet)instance); + Class customTagClass = + tagClassLoader.loadClass(classname).asSubclass(jdk.javadoc.doclet.Taglet.class); + jdk.javadoc.doclet.Taglet instance = customTagClass.getConstructor().newInstance(); + instance.init(docEnv, doclet); + Taglet newLegacy = new UserTaglet(instance); String tname = newLegacy.getName(); Taglet t = customTags.get(tname); if (t != null) { diff -r 8efb26290858 -r 4d0903f1f311 langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/UserTaglet.java --- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/UserTaglet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/UserTaglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -132,7 +132,7 @@ */ public Content getTagletOutput(Element element, DocTree tag, TagletWriter writer){ Content output = writer.getOutputInstance(); - output.addContent(new RawHtml(userTaglet.toString(Collections.singletonList(tag)))); + output.addContent(new RawHtml(userTaglet.toString(Collections.singletonList(tag), element))); return output; } @@ -144,7 +144,7 @@ Utils utils = writer.configuration().utils; List tags = utils.getBlockTags(holder, getName()); if (!tags.isEmpty()) { - String tagString = userTaglet.toString(tags); + String tagString = userTaglet.toString(tags, holder); if (tagString != null) { output.addContent(new RawHtml(tagString)); } diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/doclet/testLegacyTaglet/Check.java --- a/langtools/test/jdk/javadoc/doclet/testLegacyTaglet/Check.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testLegacyTaglet/Check.java Thu Mar 23 10:58:16 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ import java.util.EnumSet; import java.util.List; import java.util.Set; +import javax.lang.model.element.Element; import com.sun.source.doctree.DocTree; import jdk.javadoc.doclet.Taglet; @@ -64,10 +65,11 @@ * representation. * * @param tags the array of tags representing this custom tag. + * @param element the declaration to which the enclosing comment belongs * @return null to test if the javadoc throws an exception or not. */ @Override - public String toString(List tags) { + public String toString(List tags, Element element) { return null; } } diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/doclet/testLegacyTaglet/ToDoTaglet.java --- a/langtools/test/jdk/javadoc/doclet/testLegacyTaglet/ToDoTaglet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testLegacyTaglet/ToDoTaglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -24,8 +24,8 @@ import java.util.EnumSet; import java.util.List; import java.util.Map; - import java.util.Set; +import javax.lang.model.element.Element; import com.sun.source.doctree.DocTree; import com.sun.source.doctree.TextTree; @@ -87,9 +87,10 @@ * Given an array of Tags representing this custom * tag, return its string representation. * @param tags the array of DocTrees representing this custom tag. + * @param element the declaration to which the enclosing comment belongs */ @Override - public String toString(List tags) { + public String toString(List tags, Element element) { if (tags.isEmpty()) { return ""; } diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/doclet/testLegacyTaglet/UnderlineTaglet.java --- a/langtools/test/jdk/javadoc/doclet/testLegacyTaglet/UnderlineTaglet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testLegacyTaglet/UnderlineTaglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -24,6 +24,7 @@ import java.util.EnumSet; import java.util.List; import java.util.Set; +import javax.lang.model.element.Element; import com.sun.source.doctree.DocTree; import jdk.javadoc.doclet.Taglet; @@ -70,9 +71,10 @@ * Given the DocTree representation of this custom * tag, return its string representation. * @param tags the DocTree representation of this custom tag. + * @param element the declaration to which the enclosing comment belongs */ @Override - public String toString(List tags) { + public String toString(List tags, Element element) { return "" + ToDoTaglet.getText(tags.get(0)) + ""; } } diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/doclet/testUserTaglet/InfoTaglet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testUserTaglet/InfoTaglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.util.EnumSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.Element; + +import jdk.javadoc.doclet.Doclet; +import jdk.javadoc.doclet.DocletEnvironment; +import jdk.javadoc.doclet.Taglet; +import static jdk.javadoc.doclet.Taglet.Location.*; + +import com.sun.source.doctree.DocTree; + +/** + * A taglet to test access to a taglet's context. + */ +public class InfoTaglet implements Taglet { + private DocletEnvironment env; + private Doclet doclet; + + @Override + public void init(DocletEnvironment env, Doclet doclet) { + this.env = env; + this.doclet = doclet; + } + + @Override + public Set getAllowedLocations() { + return EnumSet.of(TYPE); + } + + @Override + public boolean isInlineTag() { + return false; + } + + @Override + public String getName() { + return "info"; + } + + @Override + public String toString(List tags, Element element) { + // The content lines below are primarily to help verify the element + // and the values passed to init. + return "
" + +"Info:\n" + + "
" + + "
" + + "
    \n" + + "
  • Element: " + element.getKind() + " " + element.getSimpleName() + "\n" + + "
  • Element supertypes: " + + env.getTypeUtils().directSupertypes(element.asType()) + "\n" + + "
  • Doclet: " + doclet.getClass() + "\n" + + "
\n" + + "
"; + } +} + diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/doclet/testUserTaglet/TestUserTaglet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testUserTaglet/TestUserTaglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8176836 + * @summary Provide Taglet with context + * @library ../lib + * @modules jdk.javadoc/jdk.javadoc.internal.tool + * @build JavadocTester InfoTaglet + * @run main TestUserTaglet + */ + +public class TestUserTaglet extends JavadocTester { + + public static void main(String... args) throws Exception { + TestUserTaglet tester = new TestUserTaglet(); + tester.runTests(); + } + + @Test + void test() { + javadoc("-d", "out", + "-sourcepath", testSrc, + "-tagletpath", System.getProperty("test.class.path"), + "-taglet", "InfoTaglet", + "pkg"); + checkExit(Exit.OK); + + // The following checks verify that information was successfully + // derived from the context information available to the taglet. + checkOutput("pkg/C.html", true, + "
  • Element: CLASS C", + "
  • Element supertypes: [java.lang.Object]", + "
  • Doclet: class jdk.javadoc.internal.doclets.formats.html.HtmlDoclet" + ); + } +} diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/doclet/testUserTaglet/pkg/C.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testUserTaglet/pkg/C.java Thu Mar 23 10:58:16 2017 -0700 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package pkg; + +/** @info */ +public class C { } + diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/tool/EnsureNewOldDoclet.java --- a/langtools/test/jdk/javadoc/tool/EnsureNewOldDoclet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/test/jdk/javadoc/tool/EnsureNewOldDoclet.java Thu Mar 23 10:58:16 2017 -0700 @@ -40,6 +40,7 @@ import java.util.Set; import java.util.regex.Pattern; import java.util.stream.Collectors; +import javax.lang.model.element.Element; import com.sun.javadoc.Tag; import com.sun.source.doctree.DocTree; @@ -186,7 +187,7 @@ "-tagletpath", testClasses, testSrc.toString()); - Task.Result tr = task.run(Task.Expect.FAIL, 1); + Task.Result tr = task.run(Task.Expect.FAIL, 1).writeAll(); //Task.Result tr = task.run(); List out = tr.getOutputLines(Task.OutputKind.STDOUT); List err = tr.getOutputLines(Task.OutputKind.STDERR); @@ -358,7 +359,7 @@ } @Override - public String toString(List tags) { + public String toString(List tags, Element element) { return tags.toString(); } diff -r 8efb26290858 -r 4d0903f1f311 langtools/test/jdk/javadoc/tool/api/basic/taglets/UnderlineTaglet.java --- a/langtools/test/jdk/javadoc/tool/api/basic/taglets/UnderlineTaglet.java Wed Mar 22 18:41:28 2017 +0000 +++ b/langtools/test/jdk/javadoc/tool/api/basic/taglets/UnderlineTaglet.java Thu Mar 23 10:58:16 2017 -0700 @@ -1,44 +1,30 @@ /* * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved. - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * -Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * -Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Oracle nor the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. * - * This software is provided "AS IS," without a warranty of any - * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND - * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY - * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY - * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR - * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR - * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE - * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, - * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER - * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF - * THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). * - * You acknowledge that Software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. */ import java.util.EnumSet; import java.util.List; import java.util.Set; +import javax.lang.model.element.Element; import com.sun.source.doctree.DocTree; import com.sun.source.doctree.TextTree; @@ -88,8 +74,9 @@ * Given the DocTree representation of this custom * tag, return its string representation. * @param tags the list of trees representing of this custom tag. + * @param element the declaration to which the enclosing comment belongs */ - public String toString(List tags) { + public String toString(List tags, Element element) { return "" + getText(tags.get(0)) + ""; }