/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.java.javadoc; import java.util.HashMap; import java.util.Map; import java.util.Set; public final class JavadocTag { public final String label; public final String description; private static final Map<String, JavadocTag> TAGS_BY_ID = new HashMap<>(); public static final JavadocTag AUTHOR = new JavadocTag("author", "Authors of the source code, in chronological order"); public static final JavadocTag SINCE = new JavadocTag("since", "Version of the source code that this item was introduced, can be a number or a date"); public static final JavadocTag VERSION = new JavadocTag("version", "Current version number of the source code"); public static final JavadocTag DEPRECATED = new JavadocTag("deprecated", "Indicates that an item is a member of the deprecated API"); public static final JavadocTag PARAM = new JavadocTag("param", " "); public static final JavadocTag THROWS = new JavadocTag("throws", " "); public static final JavadocTag RETURN = new JavadocTag("returns", " "); public static final JavadocTag SEE = new JavadocTag("see", " "); /* public static final JavadocTag POST = new JavadocTag("post", " "); public static final JavadocTag PRE = new JavadocTag("pre", " "); public static final JavadocTag RETURN = new JavadocTag("return", " "); public static final JavadocTag INV = new JavadocTag("inv", " "); public static final JavadocTag INVARIANT = new JavadocTag("invariant", " "); public static final JavadocTag PATTERN = new JavadocTag("pattern", " "); public static final JavadocTag SERIAL = new JavadocTag("serial", " "); public static final JavadocTag SERIAL_DATA = new JavadocTag("serialData", " "); public static final JavadocTag SERIAL_FIELD = new JavadocTag("serialField"," "); public static final JavadocTag GENERATED = new JavadocTag("generated", " "); public static final JavadocTag GENERATED_BY = new JavadocTag("generatedBy"," "); */ private JavadocTag(String theLabel, String theDescription) { label = theLabel; description = theDescription; if (TAGS_BY_ID.containsKey(theLabel)) { throw new IllegalArgumentException("pre-existing tag!"); } TAGS_BY_ID.put(theLabel, this); } public static JavadocTag tagFor(String id) { return TAGS_BY_ID.get(id); } public static Set<String> allTagIds() { return TAGS_BY_ID.keySet(); } }