RulePriority.java
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 }