01 package net.sourceforge.pmd;
02
03 /**
04 * These are the possible Rule priority values.
05 *
06 * For backward compatibility, priorities range in value from 1 to 5, with 5
07 * being the lowest priority. This means the ordinal value of the Enum should
08 * be avoided in favor of {@link RulePriority#getPriority()} and
09 * {@link RulePriority#valueOf(int)}
10 */
11 public enum RulePriority {
12 HIGH(1, "High"),
13 MEDIUM_HIGH(2, "Medium High"),
14 MEDIUM(3, "Medium"),
15 MEDIUM_LOW(4, "Medium Low"),
16 LOW(5, "Low");
17
18 private final int priority;
19 private final String name;
20
21 private RulePriority(int priority, String name) {
22 this.priority = priority;
23 this.name = name;
24 }
25
26 /**
27 * Get the priority value as a number. This is the value to be used in
28 * the externalized form of a priority (e.g. in RuleSet XML).
29 * @return The <code>int</code> value of the priority.
30 */
31 public int getPriority() {
32 return priority;
33 }
34
35 /**
36 * Get the descriptive name of this priority.
37 * @return The descriptive name.
38 */
39 public String getName() {
40 return name;
41 }
42
43 /**
44 * Returns the descriptive name of the priority.
45 */
46 @Override
47 public String toString() {
48 return name;
49 }
50
51 /**
52 * Get the priority which corresponds to the given number as returned
53 * by {@link RulePriority#getPriority()}. If the number is an invalid
54 * value, then {@link RulePriority#LOW} will be returned.
55 * @param priority The numeric priority value.
56 * @return The priority.
57 */
58 public static RulePriority valueOf(int priority) {
59 try {
60 return RulePriority.values()[priority - 1];
61 } catch (ArrayIndexOutOfBoundsException e) {
62 return LOW;
63 }
64 }
65 }
|