View Javadoc

1   package net.sourceforge.pmd;
2   
3   /**
4    * These are the possible Rule priority values.
5    * 
6    * For backward compatibility, priorities range in value from 1 to 5, with 5
7    * being the lowest priority.  This means the ordinal value of the Enum should
8    * be avoided in favor of {@link RulePriority#getPriority()} and
9    * {@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  }