diff -r 000000000000 -r 9a66ca7c79fa test/com/sun/javadoc/testLegacyTaglet/ToDoTaglet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/com/sun/javadoc/testLegacyTaglet/ToDoTaglet.java Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,177 @@ +/* + * Copyright 2003-2007 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.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: + *
Fix this! + *
+ *
+ * + * @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 + "
" + + "
" + + tag.text() + + "
\n"; + } + + /** + * Given an array of Tags representing this custom + * tag, return its string representation. + * @param tags the array of Tags 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"; + } +}