--- old/test/com/sun/javadoc/testLegacyTaglet/ToDoTaglet.java Fri Jan 22 12:24:35 2016
+++ /dev/null Fri Jan 22 12:24:35 2016
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 2003, 2007, 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 com.sun.tools.doclets.Taglet;
-import com.sun.javadoc.*;
-import java.util.Map;
-
-/**
- * A sample Taglet representing @todo. This tag can be used in any kind of
- * {@link com.sun.javadoc.Doc}. It is not an inline tag. The text is displayed
- * in yellow to remind the developer to perform a task. For
- * example, "@todo Fix this!" would be shown as:
- *
- * -
- * To Do:
- *
- *
- *
- * @author Jamie Ho
- * @since 1.4
- */
-
-public class ToDoTaglet implements Taglet {
-
- private static final String NAME = "todo";
- private static final String HEADER = "To Do:";
-
- /**
- * Return the name of this custom tag.
- */
- public String getName() {
- return NAME;
- }
-
- /**
- * Will return true since @todo
- * can be used in field documentation.
- * @return true since @todo
- * can be used in field documentation and false
- * otherwise.
- */
- public boolean inField() {
- return true;
- }
-
- /**
- * Will return true since @todo
- * can be used in constructor documentation.
- * @return true since @todo
- * can be used in constructor documentation and false
- * otherwise.
- */
- public boolean inConstructor() {
- return true;
- }
-
- /**
- * Will return true since @todo
- * can be used in method documentation.
- * @return true since @todo
- * can be used in method documentation and false
- * otherwise.
- */
- public boolean inMethod() {
- return true;
- }
-
- /**
- * Will return true since @todo
- * can be used in method documentation.
- * @return true since @todo
- * can be used in overview documentation and false
- * otherwise.
- */
- public boolean inOverview() {
- return true;
- }
-
- /**
- * Will return true since @todo
- * can be used in package documentation.
- * @return true since @todo
- * can be used in package documentation and false
- * otherwise.
- */
- public boolean inPackage() {
- return true;
- }
-
- /**
- * Will return true since @todo
- * can be used in type documentation (classes or interfaces).
- * @return true since @todo
- * can be used in type documentation and false
- * otherwise.
- */
- public boolean inType() {
- return true;
- }
-
- /**
- * Will return false since @todo
- * is not an inline tag.
- * @return false since @todo
- * is not an inline tag.
- */
-
- public boolean isInlineTag() {
- return false;
- }
-
- /**
- * Register this Taglet.
- * @param tagletMap the map to register this tag to.
- */
- public static void register(Map tagletMap) {
- ToDoTaglet tag = new ToDoTaglet();
- Taglet t = (Taglet) tagletMap.get(tag.getName());
- if (t != null) {
- tagletMap.remove(tag.getName());
- }
- tagletMap.put(tag.getName(), tag);
- }
-
- /**
- * Given the Tag
representation of this custom
- * tag, return its string representation.
- * @param tag the Tag
representation of this custom tag.
- */
- public String toString(Tag tag) {
- return "" + HEADER + ""
- + "\n";
- }
-
- /**
- * Given an array of Tag
s representing this custom
- * tag, return its string representation.
- * @param tags the array of Tag
s representing of this custom tag.
- */
- public String toString(Tag[] tags) {
- if (tags.length == 0) {
- return null;
- }
- String result = "\n" + HEADER + "";
- result += "";
- for (int i = 0; i < tags.length; i++) {
- if (i > 0) {
- result += ", ";
- }
- result += tags[i].text();
- }
- return result + " |
\n";
- }
-}
--- /dev/null Fri Jan 22 12:24:35 2016
+++ new/test/jdk/javadoc/doclet/testLegacyTaglet/ToDoTaglet.java Fri Jan 22 12:24:34 2016
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2003, 2015, 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.Map;
+
+import java.util.Set;
+
+import com.sun.source.doctree.DocTree;
+import com.sun.source.doctree.TextTree;
+import com.sun.source.doctree.UnknownBlockTagTree;
+import com.sun.source.doctree.UnknownInlineTagTree;
+import com.sun.source.util.SimpleDocTreeVisitor;
+import jdk.javadoc.doclet.taglet.Taglet;
+import jdk.javadoc.doclet.taglet.Taglet.Location;
+import static jdk.javadoc.doclet.taglet.Taglet.Location.*;
+
+
+/**
+ * A sample Taglet representing @todo. This tag can be used in any kind of
+ * {@link javax.lang.model.Element}. It is not an inline tag. The text is displayed
+ * in yellow to remind the developer to perform a task. For
+ * example, "@todo Fix this!" would be shown as:
+ *
+ * -
+ * To Do:
+ *
+ *
+ *
+ * @author Jamie Ho
+ * @since 1.4
+ */
+
+public class ToDoTaglet implements Taglet {
+
+ private static final String NAME = "todo";
+ private static final String HEADER = "To Do:";
+
+ /**
+ * Return the name of this custom tag.
+ */
+ public String getName() {
+ return NAME;
+ }
+
+ private final EnumSet allowedSet = EnumSet.allOf(Location.class);
+
+ @Override
+ public Set getAllowedLocations() {
+ return allowedSet;
+ }
+
+ /**
+ * Will return false since @todo
+ * is not an inline tag.
+ * @return false since @todo
+ * is not an inline tag.
+ */
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ /**
+ * Given the DocTree
representation of this custom
+ * tag, return its string representation.
+ * @param tag the DocTree
representing this custom tag.
+ */
+ public String toString(DocTree tag) {
+
+ return "" + HEADER + ""
+ + "\n";
+ }
+
+ /**
+ * Given an array of Tag
s representing this custom
+ * tag, return its string representation.
+ * @param tags the array of DocTree
s representing this custom tag.
+ */
+ @Override
+ public String toString(List extends DocTree> tags) {
+ if (tags.isEmpty()) {
+ return null;
+ }
+ String result = "\n" + HEADER + "";
+ result += "";
+ for (int i = 0; i < tags.size(); i++) {
+ if (i > 0) {
+ result += ", ";
+ }
+ result += getText(tags.get(i));
+ }
+ return result + " |
\n";
+ }
+
+ static String getText(DocTree dt) {
+ return new SimpleDocTreeVisitor() {
+ @Override
+ public String visitUnknownBlockTag(UnknownBlockTagTree node, Void p) {
+ for (DocTree dt : node.getContent()) {
+ return dt.accept(this, null);
+ }
+ return "";
+ }
+
+ @Override
+ public String visitUnknownInlineTag(UnknownInlineTagTree node, Void p) {
+ for (DocTree dt : node.getContent()) {
+ return dt.accept(this, null);
+ }
+ return "";
+ }
+
+ @Override
+ public String visitText(TextTree node, Void p) {
+ return node.getBody();
+ }
+
+ @Override
+ protected String defaultAction(DocTree node, Void p) {
+ return "";
+ }
+
+ }.visit(dt, null);
+ }
+}