From: Mark D. <mar...@ic...> - 2008-05-28 07:12:07
|
Here's what I ended up with, along the lines of what I discussed earlier. I have checked in draft code and tests (#6303). It uses stubbed data for now, until the CLDR data is available. Comments welcome.com.ibm.icu.text Class TimeUnitFormat java.lang.Object [image: extended by]java.text.Format [image: extended by]com.ibm.icu.text.UFormat [image: extended by]com.ibm.icu.text.MeasureFormat [image: extended by]*com.ibm.icu.text.TimeUnitFormat* *All Implemented Interfaces:*java.io.Serializable, java.lang.Cloneable ------------------------------ public class *TimeUnitFormat*extends com.ibm.icu.text.MeasureFormat Format or parse a TimeUnitAmount, using plural rules for the units where available. *Author:*markdavis*See Also:*TimeUnitAmount<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnitAmount.html> , TimeUnitFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> , Serialized Form<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/serialized-form.html#com.ibm.icu.text.TimeUnitFormat> ------------------------------ *Nested Class Summary* *Nested classes/interfaces inherited from class java.text.Format*java.text.Format.Field *Constructor Summary**TimeUnitFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html#TimeUnitFormat()> *() Create empty format. *Method Summary* java.lang.StringBuffer* format<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html#format(java.lang.Object,%20java.lang.StringBuffer,%20java.text.FieldPosition)> *(java.lang.Object obj, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos) Format a TimeUnitAmount. java.lang.Object*parseObject<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html#parseObject(java.lang.String,%20java.text.ParsePosition)> *(java.lang.String source, java.text.ParsePosition pos) Parse a TimeUnitAmount. TimeUnitFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> *setLocale<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html#setLocale(java.util.Locale)> *(java.util.Locale locale) Set the locale used for formatting or parsing. TimeUnitFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> *setLocale<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html#setLocale(com.ibm.icu.util.ULocale)> *(com.ibm.icu.util.ULocale locale) Set the locale used for formatting or parsing. TimeUnitFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> *setNumberFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html#setNumberFormat(com.ibm.icu.text.NumberFormat)> *(com.ibm.icu.text.NumberFormat format) Set the format used for formatting or parsing. *Methods inherited from class com.ibm.icu.text.MeasureFormat*getCurrencyFormat, getCurrencyFormat *Methods inherited from class com.ibm.icu.text.UFormat* getLocale *Methods inherited from class java.text.Format*clone, format, formatToCharacterIterator, parseObject *Methods inherited from class java.lang.Object*equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait *Constructor Detail*TimeUnitFormat public *TimeUnitFormat*() Create empty format. Use setLocale and/or setFormat to modify. *Method Detail*setLocale public TimeUnitFormat <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> *setLocale*(com.ibm.icu.util.ULocale locale) Set the locale used for formatting or parsing. *Returns:*this, for chaining. ------------------------------ setLocale public TimeUnitFormat <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> *setLocale*(java.util.Locale locale) Set the locale used for formatting or parsing. *Returns:*this, for chaining. ------------------------------ setNumberFormat public TimeUnitFormat <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> *setNumberFormat*(com.ibm.icu.text.NumberFormat format) Set the format used for formatting or parsing. If null or not available, use the getNumberInstance(locale). *Returns:*this, for chaining. ------------------------------ format public java.lang.StringBuffer *format*(java.lang.Object obj, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos) Format a TimeUnitAmount. *Specified by:*format in class java.text.Format*See Also:*Format.format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition) ------------------------------ parseObject public java.lang.Object *parseObject*(java.lang.String source, java.text.ParsePosition pos) Parse a TimeUnitAmount. *Specified by:*parseObject in class java.text.Formatcom.ibm.icu.util Class TimeUnitAmount java.lang.Object [image: extended by]com.ibm.icu.util.Measure [image: extended by]*com.ibm.icu.util.TimeUnitAmount* ------------------------------ public class *TimeUnitAmount*extends com.ibm.icu.util.Measure Express a duration as a time unit and number. Patterned after Currency. Immutable. *Author:*markdavis*See Also:*TimeUnitAmount<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnitAmount.html> , TimeUnitFormat<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/text/TimeUnitFormat.html> ------------------------------ *Constructor Summary**TimeUnitAmount<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnitAmount.html#TimeUnitAmount(double,%20com.ibm.icu.util.TimeUnit)> *(double number, TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> unit) Create from a number and unit.*TimeUnitAmount<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnitAmount.html#TimeUnitAmount(java.lang.Number,%20com.ibm.icu.util.TimeUnit)> *(java.lang.Number number, TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> unit) Create from a number and unit. *Method Summary* TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *getTimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnitAmount.html#getTimeUnit()> *() Get the unit (convenience to avoid cast). *Methods inherited from class com.ibm.icu.util.Measure*equals, getNumber, getUnit, hashCode, numbersEqual, toString *Methods inherited from class java.lang.Object*getClass, notify, notifyAll, wait, wait, wait *Constructor Detail*TimeUnitAmount public *TimeUnitAmount*(java.lang.Number number, TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> unit) Create from a number and unit. ------------------------------ TimeUnitAmount public *TimeUnitAmount*(double number, TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> unit) Create from a number and unit. *Method Detail*getTimeUnit public TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *getTimeUnit*() Get the unit (convenience to avoid cast). com.ibm.icu.util Class TimeUnit java.lang.Object [image: extended by]com.ibm.icu.util.MeasureUnit [image: extended by]*com.ibm.icu.util.TimeUnit* ------------------------------ public class *TimeUnit*extends com.ibm.icu.util.MeasureUnit Measurement unit for time units. *Author:*markdavis*See Also:*TimeUnitAmount<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnitAmount.html> , TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> ------------------------------ *Field Summary*static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *DAY<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#DAY> * Constant value for supported time unit.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *HOUR<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#HOUR> * Constant value for supported time unit.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *MINUTE<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#MINUTE> * Constant value for supported time unit.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *MONTH<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#MONTH> * Constant value for supported time unit.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *SECOND<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#SECOND> * Constant value for supported time unit.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *WEEK<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#WEEK> * Constant value for supported time unit.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *YEAR<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#YEAR> * Constant value for supported time unit. *Method Summary* java.lang.String*toString<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#toString()> *() A string representation for debugging.static TimeUnit<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> []*values<file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html#values()> *() *Methods inherited from class java.lang.Object*equals, getClass, hashCode, notify, notifyAll, wait, wait, wait *Field Detail*SECOND public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *SECOND* Constant value for supported time unit. ------------------------------ MINUTE public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *MINUTE* Constant value for supported time unit. ------------------------------ HOUR public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *HOUR* Constant value for supported time unit. ------------------------------ DAY public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *DAY* Constant value for supported time unit. ------------------------------ WEEK public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *WEEK* Constant value for supported time unit. ------------------------------ MONTH public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *MONTH* Constant value for supported time unit. ------------------------------ YEAR public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html> *YEAR* Constant value for supported time unit. *Method Detail*values public static TimeUnit <file:///Users/markdavis/Documents/workspace/icu4j-trunk/doc/com/ibm/icu/util/TimeUnit.html>[] *values*() *Returns:*the available values ------------------------------ toString public java.lang.String *toString*() A string representation for debugging. *Overrides:*toString in class java.lang.Object-- Mark |