package plan.dom;
/** Implements a priority type of {high, med, low} */
public class Priority implements Comparable {
private static Priority[] prioObj = {new Priority(0), new Priority(1), new Priority(2)};
private static String[] prioStr = {"high", "med", "low"};
public static final Priority high = prioObj[0];
public static final Priority med = prioObj[1];
public static final Priority low = prioObj[2];
private int i;
/** Private access so that only the instances defined above can exist. */
private Priority(int i) {
this.i = i;
}
/** high > med > low */
public int compareTo(Object o) {
// Return values:
// -1: this < o
// 0: this == o
// +1: this > o
Priority other = (Priority)o;
if (i < other.i)
return +1;
else if (i > other.i)
return -1;
else
return 0;
}
/** tests for equality of this priority with the other */
public boolean equals(Object o) {
return i == ((Priority)o).i;
}
/** converts to a standard string representation of priorities */
public String toString() {
return prioStr[i];
}
/** Return the priority object corresponding to the given name.
* @param name the name of the priority level
* @return the requested object or null if the name does not match
*/
public static Priority get(String name) {
for (int i = 0; i < prioStr.length; i++)
if (prioStr[i].equalsIgnoreCase(name.trim()))
return prioObj[i];
return null;
}
}