[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:
Michael Koch 2003-10-29 16:07:59 +00:00
parent f2225d74aa
commit 8b941eec31
8 changed files with 747 additions and 13 deletions

View file

@ -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);
}