1 /* 2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 import com.sun.tools.doclets.Taglet; 25 import com.sun.javadoc.*; 26 import java.util.Map; 27 28 public class Check implements Taglet { 29 30 private static final String TAG_NAME = "check"; 31 private static final String TAG_HEADER = "Check:"; 32 33 /** 34 * Return true since the tag can be used in package documentation. 35 * 36 * @return true since the tag can be used in package documentation. 37 */ 38 public boolean inPackage() { 39 return true; 40 } 41 42 /** 43 * Return true since the tag can be used in overview documentation. 44 * 45 * @return true since the tag can be used in overview documentation. 46 */ 47 public boolean inOverview() { 48 return true; 49 } 50 51 /** 52 * Return true since the tag can be used in type (class/interface) 53 * documentation. 54 * 55 * @return true since the tag can be used in type (class/interface) 56 * documentation. 57 */ 58 public boolean inType() { 59 return true; 60 } 61 62 /** 63 * Return true since the tag can be used in constructor documentation. 64 * 65 * @return true since the tag can be used in constructor documentation. 66 */ 67 public boolean inConstructor() { 68 return true; 69 } 70 71 /** 72 * Return true since the tag can be used in field documentation. 73 * 74 * @return true since the tag can be used in field documentation. 75 */ 76 public boolean inField() { 77 return true; 78 } 79 80 /** 81 * Return true since the tag can be used in method documentation. 82 * 83 * @return true since the tag can be used in method documentation. 84 */ 85 public boolean inMethod() { 86 return true; 87 } 88 89 /** 90 * Return false since the tag is not an inline tag. 91 * 92 * @return false since the tag is not an inline tag. 93 */ 94 public boolean isInlineTag() { 95 return false; 96 } 97 98 /** 99 * Register this taglet. 100 * 101 * @param tagletMap the map to register this tag to. 102 */ 103 @SuppressWarnings("unchecked") 104 public static void register(Map tagletMap) { 105 Check tag = new Check(); 106 Taglet t = (Taglet) tagletMap.get(tag.getName()); 107 if (t != null) { 108 tagletMap.remove(tag.getName()); 109 } 110 tagletMap.put(tag.getName(), tag); 111 } 112 113 /** 114 * Return the name of this custom tag. 115 * 116 * @return the name of this tag. 117 */ 118 public String getName() { 119 return TAG_NAME; 120 } 121 122 /** 123 * Given the tag representation of this custom tag, return its string 124 * representation. 125 * 126 * @param tag the tag representation of this custom tag. 127 */ 128 public String toString(Tag tag) { 129 return "<dt><span class=\"simpleTagLabel\">" + TAG_HEADER + ":</span></dt><dd>" + tag.text() + 130 "</dd>\n"; 131 } 132 133 /** 134 * Given an array of tags representing this custom tag, return its string 135 * representation. 136 * 137 * @param tags the array of tags representing of this custom tag. 138 * @return null to test if the javadoc throws an exception or not. 139 */ 140 public String toString(Tag[] tags) { 141 return null; 142 } 143 }