1 /* 2 * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or 5 * without modification, are permitted provided that the following 6 * conditions are met: 7 * 8 * -Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 11 * -Redistribution in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the 14 * distribution. 15 * 16 * Neither the name of Oracle nor the names of 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * This software is provided "AS IS," without a warranty of any 21 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND 22 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, 23 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY 24 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY 25 * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR 26 * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR 27 * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE 28 * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, 29 * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER 30 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF 31 * THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN 32 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 33 * 34 * You acknowledge that Software is not designed, licensed or 35 * intended for use in the design, construction, operation or 36 * maintenance of any nuclear facility. 37 */ 38 39 import com.sun.tools.doclets.Taglet; 40 import com.sun.javadoc.*; 41 import java.util.Map; 42 43 /** 44 * A sample Inline Taglet representing {@underline ...}. This tag can 45 * be used in any kind of {@link com.sun.javadoc.Doc}. 46 * The text is underlined. For example, 47 * "@underline UNDERLINE ME" would be shown as: <u>UNDERLINE ME</u>. 48 * 49 * @author Jamie Ho 50 * @since 1.4 51 */ 52 53 public class UnderlineTaglet implements Taglet { 54 55 private static final String NAME = "underline"; 56 57 /** 58 * Return the name of this custom tag. 59 */ 60 public String getName() { 61 return NAME; 62 } 63 64 /** 65 * @return true since this tag can be used in a field 66 * doc comment 67 */ 68 public boolean inField() { 69 return true; 70 } 71 72 /** 73 * @return true since this tag can be used in a constructor 74 * doc comment 75 */ 76 public boolean inConstructor() { 77 return true; 78 } 79 80 /** 81 * @return true since this tag can be used in a method 82 * doc comment 83 */ 84 public boolean inMethod() { 85 return true; 86 } 87 88 /** 89 * @return true since this tag can be used in an overview 90 * doc comment 91 */ 92 public boolean inOverview() { 93 return true; 94 } 95 96 /** 97 * @return true since this tag can be used in a package 98 * doc comment 99 */ 100 public boolean inPackage() { 101 return true; 102 } 103 104 /** 105 * @return true since this 106 */ 107 public boolean inType() { 108 return true; 109 } 110 111 /** 112 * Will return true since this is an inline tag. 113 * @return true since this is an inline tag. 114 */ 115 116 public boolean isInlineTag() { 117 return true; 118 } 119 120 /** 121 * Register this Taglet. 122 * @param tagletMap the map to register this tag to. 123 */ 124 public static void register(Map tagletMap) { 125 UnderlineTaglet tag = new UnderlineTaglet(); 126 Taglet t = (Taglet) tagletMap.get(tag.getName()); 127 if (t != null) { 128 tagletMap.remove(tag.getName()); 129 } 130 tagletMap.put(tag.getName(), tag); 131 } 132 133 /** 134 * Given the <code>Tag</code> representation of this custom 135 * tag, return its string representation. 136 * @param tag he <code>Tag</code> representation of this custom tag. 137 */ 138 public String toString(Tag tag) { 139 return "<u>" + tag.text() + "</u>"; 140 } 141 142 /** 143 * This method should not be called since arrays of inline tags do not 144 * exist. Method {@link #tostring(Tag)} should be used to convert this 145 * inline tag to a string. 146 * @param tags the array of <code>Tag</code>s representing of this custom tag. 147 */ 148 public String toString(Tag[] tags) { 149 return null; 150 } 151 } 152