/**
* set of valid units to use for time offsets.
*/
/**
* Borrowed from Tstamp
* @todo share all this time stuff across many tasks as a datetime datatype
* @since Ant 1.5
*/
public static class Unit extends EnumeratedAttribute {
private static final String MILLISECOND = "millisecond";
private static final String SECOND = "second";
private static final String MINUTE = "minute";
private static final String HOUR = "hour";
private static final String DAY = "day";
private static final String WEEK = "week";
private static final String MONTH = "month";
private static final String YEAR = "year";
private static final String[] UNITS = {
MILLISECOND,
SECOND,
MINUTE,
HOUR,
DAY,
WEEK,
MONTH,
YEAR
};
private Map calendarFields = new HashMap();
/** Constructor for Unit enumerated type. */
/** no arg constructor */
public Unit() {
calendarFields.put(MILLISECOND, new Integer(Calendar.MILLISECOND));
calendarFields.put(SECOND, new Integer(Calendar.SECOND));
calendarFields.put(MINUTE, new Integer(Calendar.MINUTE));
calendarFields.put(HOUR, new Integer(Calendar.HOUR_OF_DAY));
calendarFields.put(DAY, new Integer(Calendar.DATE));
calendarFields.put(WEEK, new Integer(Calendar.WEEK_OF_YEAR));
calendarFields.put(MONTH, new Integer(Calendar.MONTH));
calendarFields.put(YEAR, new Integer(Calendar.YEAR));
}
/**
* Convert the value to int unit value.
* @return an int value.
*/
/**
* Convert the value to a Calendar field index.
* @return the calander value.
*/
public int getCalendarField() {
String key = getValue().toLowerCase();
Integer i = (Integer) calendarFields.get(key);
return i.intValue();
}
/**
* Get the valid values.
* @return the value values.
*/
/** {@inheritDoc}. */
public String[] getValues() {
return UNITS;
}
}
|