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