/************************************************************************** /* Taglet for the bb.todo-Tag. Modified version of SUNs sample-taglet /* ToDoTaglet.java. /* /* Copyright of the original ToDoTaglet.java: /* * 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. * * -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 Sun Microsystems, Inc. or the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * 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. * * You acknowledge that Software is not designed, licensed or * intended for use in the design, construction, operation or * maintenance of any nuclear facility. /* Copyright (c) 2004 by Bernhard Bablok (mail@bablokb.de) /* /* This library is free software; you can redistribute it and/or modify /* it under the terms of the GNU Lesser General Public License as published /* by the Free Software Foundation; either version 2 of the License or /* (at your option) any later version. /* /* This library 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 Lesser General Public License for more details. /* /* You should have received a copy of the GNU Lesser General Public License /* along with this library; see the file COPYING.LESSER. If not, write to /* the Free Software Foundation Inc., 59 Temple Place - Suite 330, /* Boston, MA 02111-1307 USA /**************************************************************************/ package de.bablokb.tools; import com.sun.tools.doclets.Taglet; import com.sun.javadoc.*; import java.util.Map; /** Taglet for the bb.todo-Tag. @version $Revision: 1.1 $ @author $Author: bablokb $ */ public class BBToDoTaglet implements Taglet { private static final String NAME = "bb.todo"; private static final String HEADER = "To Do:"; private static final String HTML_START = "
" + HEADER + "
" + "
"; private static final String HTML_END = "
\n"; //////////////////////////////////////////////////////////////////////////// /** * Return the name of this custom tag. */ public String getName() { return NAME; } //////////////////////////////////////////////////////////////////////////// /** * Will return true since this BBToDoTaglet * can be used in field documentation. * @return true since this BBToDoTaglet * can be used in field documentation and false * otherwise. */ public boolean inField() { return true; } //////////////////////////////////////////////////////////////////////////// /** * Will return true since this BBToDoTaglet * can be used in constructor documentation. * @return true since this BBToDoTaglet * can be used in constructor documentation and false * otherwise. */ public boolean inConstructor() { return true; } //////////////////////////////////////////////////////////////////////////// /** * Will return true since this BBToDoTaglet * can be used in method documentation. * @return true since this BBToDoTaglet * can be used in method documentation and false * otherwise. */ public boolean inMethod() { return true; } //////////////////////////////////////////////////////////////////////////// /** * Will return true since this BBToDoTaglet * can be used in method documentation. * @return true since this BBToDoTaglet * can be used in overview documentation and false * otherwise. */ public boolean inOverview() { return true; } //////////////////////////////////////////////////////////////////////////// /** * Will return true since this BBToDoTaglet * can be used in package documentation. * @return true since this BBToDoTaglet * can be used in package documentation and false * otherwise. */ public boolean inPackage() { return true; } //////////////////////////////////////////////////////////////////////////// /** * Will return true since this BBToDoTaglet * can be used in type documentation (classes or interfaces). * @return true since this BBToDoTaglet * can be used in type documentation and false * otherwise. */ public boolean inType() { return true; } //////////////////////////////////////////////////////////////////////////// /** * Will return false since this BBToDoTaglet * is not an inline tag. * @return false since this BBToDoTaglet * 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) { BBToDoTaglet tag = new BBToDoTaglet(); 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 he Tag representation of this custom tag. */ public String toString(Tag tag) { return HTML_START + tag.text() + HTML_END; } //////////////////////////////////////////////////////////////////////////// /** * 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; } StringBuffer result = new StringBuffer(HTML_START); for (int i = 0; i < tags.length; i++) { if (i > 0) { result.append(", "); } result.append(tags[i].text()); } result.append(HTML_END); return result.toString(); } }