[multiple changes]
2003-10-29 Mark Wielaard <mark@klomp.org> From Guilhem Lavaux <guilhem.lavaux@free.fr> * java/text/DateFormat.java (Field): New public static inner class. * java/text/Format.java (Field): Likewise. (formatToCharacterIterator): New method. * java/text/FormatCharacterIterator.java: New file. 2003-10-29 Mark Wielaard <mark@klomp.org> From Guilhem Lavaux <guilhem.lavaux@free.fr> * java/util/Currency.java: New file. 2003-10-29 Michael Koch <konqueror@gmx.de> * Makefile.am (ordinary_java_source_files): Added java/text/FormatCharacterIterator.java and java/util/Currency.java. * Makefile.in: Regenerated. From-SVN: r73046
This commit is contained in:
parent
f2225d74aa
commit
8b941eec31
8 changed files with 747 additions and 13 deletions
|
@ -1,5 +1,5 @@
|
|||
/* DateFormat.java -- Class for formatting/parsing date/times
|
||||
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -39,6 +39,7 @@ exception statement from your version. */
|
|||
package java.text;
|
||||
|
||||
import java.util.*;
|
||||
import java.io.InvalidObjectException;
|
||||
|
||||
/**
|
||||
* @author Per Bothner <bothner@cygnus.com>
|
||||
|
@ -86,6 +87,97 @@ public abstract class DateFormat extends Format implements Cloneable
|
|||
public static final int HOUR0_FIELD = 16;
|
||||
public static final int TIMEZONE_FIELD = 17;
|
||||
|
||||
|
||||
public static class Field extends Format.Field
|
||||
{
|
||||
static final long serialVersionUID = 7441350119349544720L;
|
||||
|
||||
private int calendarField;
|
||||
|
||||
public static final DateFormat.Field ERA
|
||||
= new Field("era", Calendar.ERA);
|
||||
public static final DateFormat.Field YEAR
|
||||
= new Field("year", Calendar.YEAR);
|
||||
public static final DateFormat.Field MONTH
|
||||
= new Field("month", Calendar.MONTH);
|
||||
public static final DateFormat.Field DAY_OF_MONTH
|
||||
= new Field("day of month", Calendar.DAY_OF_MONTH);
|
||||
public static final DateFormat.Field HOUR_OF_DAY1
|
||||
= new Field("hour of day 1", Calendar.HOUR_OF_DAY);
|
||||
public static final DateFormat.Field HOUR_OF_DAY0
|
||||
= new Field("hour of day 0", Calendar.HOUR_OF_DAY);
|
||||
public static final DateFormat.Field MINUTE
|
||||
= new Field("minute", Calendar.MINUTE);
|
||||
public static final DateFormat.Field SECOND
|
||||
= new Field("second", Calendar.SECOND);
|
||||
public static final DateFormat.Field MILLISECOND
|
||||
= new Field("millisecond", Calendar.MILLISECOND);
|
||||
public static final DateFormat.Field DAY_OF_WEEK
|
||||
= new Field("day of week", Calendar.DAY_OF_WEEK);
|
||||
public static final DateFormat.Field DAY_OF_YEAR
|
||||
= new Field("day of year", Calendar.DAY_OF_YEAR);
|
||||
public static final DateFormat.Field DAY_OF_WEEK_IN_MONTH
|
||||
= new Field("day of week in month", Calendar.DAY_OF_WEEK_IN_MONTH);
|
||||
public static final DateFormat.Field WEEK_OF_YEAR
|
||||
= new Field("week of year", Calendar.WEEK_OF_YEAR);
|
||||
public static final DateFormat.Field WEEK_OF_MONTH
|
||||
= new Field("week of month", Calendar.WEEK_OF_MONTH);
|
||||
public static final DateFormat.Field AM_PM
|
||||
= new Field("am/pm", Calendar.AM_PM);
|
||||
public static final DateFormat.Field HOUR1
|
||||
= new Field("hour1", Calendar.HOUR);
|
||||
public static final DateFormat.Field HOUR0
|
||||
= new Field("hour0", Calendar.HOUR);
|
||||
public static final DateFormat.Field TIME_ZONE
|
||||
= new Field("timezone", Calendar.ZONE_OFFSET);
|
||||
|
||||
public static final DateFormat.Field[] allFields =
|
||||
{
|
||||
ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY1,
|
||||
HOUR_OF_DAY0, MINUTE, SECOND, MILLISECOND,
|
||||
DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH,
|
||||
WEEK_OF_YEAR, WEEK_OF_MONTH, AM_PM, HOUR1, HOUR0,
|
||||
TIME_ZONE
|
||||
};
|
||||
|
||||
// For deserialization
|
||||
private Field()
|
||||
{
|
||||
super("");
|
||||
}
|
||||
|
||||
protected Field(String name, int calendarField)
|
||||
{
|
||||
super(name);
|
||||
this.calendarField = calendarField;
|
||||
}
|
||||
|
||||
public int getCalendarField()
|
||||
{
|
||||
return calendarField;
|
||||
}
|
||||
|
||||
public static Field ofCalendarField(int calendarField)
|
||||
{
|
||||
if (calendarField >= allFields.length || calendarField < 0)
|
||||
throw new IllegalArgumentException("no such calendar field ("
|
||||
+ calendarField + ")");
|
||||
|
||||
return allFields[calendarField];
|
||||
}
|
||||
|
||||
protected Object readResolve() throws InvalidObjectException
|
||||
{
|
||||
String s = getName();
|
||||
|
||||
for (int i=0;i<allFields.length;i++)
|
||||
if (s.equals(allFields[i].getName()))
|
||||
return allFields[i];
|
||||
|
||||
throw new InvalidObjectException("no such DateFormat field called " + s);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method initializes a new instance of <code>DateFormat</code>.
|
||||
*/
|
||||
|
@ -152,7 +244,9 @@ public abstract class DateFormat extends Format implements Cloneable
|
|||
if (obj instanceof Number)
|
||||
obj = new Date(((Number) obj).longValue());
|
||||
else if (! (obj instanceof Date))
|
||||
throw new IllegalArgumentException ("Cannot format given Object as a Date");
|
||||
throw new IllegalArgumentException
|
||||
("Cannot format given Object as a Date");
|
||||
|
||||
return format ((Date) obj, buf, pos);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue