1 /* 2 com.puppycrawl.tools.checkstyle.meta.JavadocMetadataScraper 3 writeXmlOutput = false 4 5 6 */ 7 8 package com.puppycrawl.tools.checkstyle.meta.javadocmetadatascraper; 9 10 import java.util.regex.Matcher; 11 import java.util.regex.Pattern; 12 13 import com.puppycrawl.tools.checkstyle.StatelessCheck; 14 import com.puppycrawl.tools.checkstyle.api.AbstractCheck; 15 16 17 18 19 20 21 22 /** 23 * <p> 24 * Requires user defined Javadoc tag to be present in Javadoc comment with defined format. 25 * To define the format for a tag, set property tagFormat to a regular expression. 26 * Property tagSeverity is used for severity of events when the tag exists. 27 * </p> 28 * <ul> 29 * <li> 30 * Property {@code tag} - Specify the name of tag. 31 * Type is {@code java.lang.String}. 32 * Default value is {@code null}. 33 * </li> 34 * <li> 35 * Property {@code tagFormat} - Specify the regexp to match tag content. 36 * Type is {@code java.util.regex.Pattern}. 37 * Default value is {@code null}. 38 * </li> 39 * <li> 40 * Property {@code tagSeverity} - Specify the severity level when tag is found and printed. 41 * Type is {@code com.puppycrawl.tools.checkstyle.api.SeverityLevel}. 42 * Default value is {@code info}. 43 * </li> 44 * <li> 45 * Property {@code tokens} - tokens to check 46 * Type is {@code java.lang.String[]}. 47 * Validation type is {@code tokenSet}. 48 * Default value is: 49 * <a href="https://checkstyle.org/apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#INTERFACE_DEF"> 50 * INTERFACE_DEF</a>, 51 * <a href="https://checkstyle.org/apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#CLASS_DEF"> 52 * CLASS_DEF</a>, 53 * <a href="https://checkstyle.org/apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#ENUM_DEF"> 54 * ENUM_DEF</a>, 55 * <a href="https://checkstyle.org/apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#ANNOTATION_DEF"> 56 * ANNOTATION_DEF</a>, 57 * <a href="https://checkstyle.org/apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#RECORD_DEF"> 58 * RECORD_DEF</a>. 59 * </li> 60 * </ul> 61 * <p> 62 * To configure the check for printing author name: 63 * </p> 64 * <pre> 65 * <module name="WriteTag"> 66 * <property name="tag" value="@author"/> 67 * <property name="tagFormat" value="\S"/> 68 * </module> 69 * </pre> 70 * <p> 71 * To configure the check to print warnings if an "@incomplete" tag is found, 72 * and not print anything if it is not found: 73 * </p> 74 * <pre> 75 * skipped as not relevant for UTs 76 * </pre> 77 * <p> 78 * Parent is {@code com.puppycrawl.tools.checkstyle.TreeWalker} 79 * </p> 80 * <p> 81 * Violation Message Keys: 82 * </p> 83 * <ul> 84 * <li> 85 * {@code javadoc.writeTag} 86 * </li> 87 * <li> 88 * {@code type.missingTag} 89 * </li> 90 * <li> 91 * {@code type.tagFormat} 92 * </li> 93 * </ul> 94 * 95 * @since 4.2 96 */ 97 @StatelessCheck 98 public abstract class InputJavadocMetadataScraperWriteTagCheck extends AbstractCheck { 99 100 }