+1999-05-9 Anthony Green <green@cygnus.com>
+
+ * java/text/DateFormat.java (computeInstance): Separate time
+ and date styles.
+ (getDateTimeInstance): Ditto.
+ (getDateTimeInstance(int,int)): New method.
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (ordinary_java_source_files): Add new classes.
+
+ * java/util/PropertyResourceBundle.java: New file.
+ * gnu/gcj/util/EnumerationChain.java: New file.
+
1999-05-07 Tom Tromey <tromey@cygnus.com>
* acconfig.h (GCJVERSION): New undef.
gnu/gcj/protocol/http/Connection.java \
gnu/gcj/protocol/http/Handler.java \
gnu/gcj/RawData.java \
+gnu/gcj/util/EnumerationChain.java \
java/io/BufferedInputStream.java \
java/io/BufferedOutputStream.java \
java/io/BufferedReader.java \
java/util/Observable.java \
java/util/Observer.java \
java/util/Properties.java \
+java/util/PropertyResourceBundle.java \
java/util/Random.java \
java/util/ResourceBundle.java \
java/util/SimpleTimeZone.java \
gnu/gcj/protocol/http/Connection.java \
gnu/gcj/protocol/http/Handler.java \
gnu/gcj/RawData.java \
+gnu/gcj/util/EnumerationChain.java \
java/io/BufferedInputStream.java \
java/io/BufferedOutputStream.java \
java/io/BufferedReader.java \
java/util/Observable.java \
java/util/Observer.java \
java/util/Properties.java \
+java/util/PropertyResourceBundle.java \
java/util/Random.java \
java/util/ResourceBundle.java \
java/util/SimpleTimeZone.java \
.deps/gnu/gcj/text/LocaleData_en_US.P \
.deps/gnu/gcj/text/SentenceBreakIterator.P \
.deps/gnu/gcj/text/WordBreakIterator.P \
+.deps/gnu/gcj/util/EnumerationChain.P \
.deps/java/io/BufferedInputStream.P \
.deps/java/io/BufferedOutputStream.P .deps/java/io/BufferedReader.P \
.deps/java/io/BufferedWriter.P .deps/java/io/ByteArrayInputStream.P \
.deps/java/util/MissingResourceException.P \
.deps/java/util/NoSuchElementException.P .deps/java/util/Observable.P \
.deps/java/util/Observer.P .deps/java/util/Properties.P \
-.deps/java/util/Random.P .deps/java/util/ResourceBundle.P \
-.deps/java/util/SimpleTimeZone.P .deps/java/util/Stack.P \
-.deps/java/util/StringTokenizer.P .deps/java/util/TimeZone.P \
-.deps/java/util/TooManyListenersException.P .deps/java/util/Vector.P \
-.deps/java/util/zip/Adler32.P .deps/java/util/zip/CRC32.P \
-.deps/java/util/zip/Checksum.P .deps/java/util/zip/Deflater.P \
+.deps/java/util/PropertyResourceBundle.P .deps/java/util/Random.P \
+.deps/java/util/ResourceBundle.P .deps/java/util/SimpleTimeZone.P \
+.deps/java/util/Stack.P .deps/java/util/StringTokenizer.P \
+.deps/java/util/TimeZone.P .deps/java/util/TooManyListenersException.P \
+.deps/java/util/Vector.P .deps/java/util/zip/Adler32.P \
+.deps/java/util/zip/CRC32.P .deps/java/util/zip/Checksum.P \
+.deps/java/util/zip/Deflater.P \
.deps/java/util/zip/DeflaterOutputStream.P \
.deps/java/util/zip/InflaterInputStream.P \
.deps/java/util/zip/ZipConstants.P .deps/java/util/zip/ZipEntry.P \
--- /dev/null
+/* Copyright (C) 1999 Cygnus Solutions
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package gnu.gcj.util;
+
+import java.util.Enumeration;
+import java.util.NoSuchElementException;
+
+public class EnumerationChain implements Enumeration
+{
+ private Enumeration first_;
+ private Enumeration second_;
+
+ public EnumerationChain (Enumeration first, Enumeration second)
+ {
+ if (first == null
+ || second == null)
+ throw new NullPointerException();
+
+ first_ = first;
+ second_ = second;
+ }
+
+ public synchronized boolean hasMoreElements()
+ {
+ if (first_ == null)
+ return false;
+ else
+ return first_.hasMoreElements();
+ }
+
+ public synchronized Object nextElement() throws NoSuchElementException
+ {
+ while (first_ != null)
+ {
+ if (! first_.hasMoreElements())
+ {
+ first_ = second_;
+ second_ = null;
+ }
+ else
+ return first_.nextElement();
+ }
+
+ throw new NoSuchElementException();
+ }
+}
private static final DateFormat computeInstance (int style, Locale loc,
boolean use_date,
boolean use_time)
+ {
+ return computeInstance (style, style, loc, use_date, use_time);
+ }
+
+ private static final DateFormat computeInstance (int dateStyle,
+ int timeStyle,
+ Locale loc,
+ boolean use_date,
+ boolean use_time)
{
ResourceBundle res;
try
if (use_date)
{
String name, def;
- switch (style)
+ switch (dateStyle)
{
case FULL:
name = "fullDateFormat";
pattern += " ";
String name, def;
- switch (style)
+ switch (timeStyle)
{
case FULL:
name = "fullTimeFormat";
public static final DateFormat getDateTimeInstance ()
{
- return getDateTimeInstance (DEFAULT, Locale.getDefault());
+ return getDateTimeInstance (DEFAULT, DEFAULT, Locale.getDefault());
}
public static final DateFormat getDateTimeInstance (int style)
{
- return getDateTimeInstance (style, Locale.getDefault());
+ return getDateTimeInstance (style, style, Locale.getDefault());
+ }
+
+ public static final DateFormat getDateTimeInstance (int dateStyle,
+ int timeStyle)
+ {
+ return getDateTimeInstance (dateStyle, timeStyle, Locale.getDefault());
}
- public static final DateFormat getDateTimeInstance (int style, Locale loc)
+ public static final DateFormat getDateTimeInstance (int dateStyle,
+ int timeStyle,
+ Locale loc)
{
- return computeInstance (style, loc, true, true);
+ return computeInstance (dateStyle, timeStyle, loc, true, true);
}
public static final DateFormat getInstance ()
{
// JCL book says SHORT.
- return getDateTimeInstance (SHORT, Locale.getDefault());
+ return getDateTimeInstance (SHORT, SHORT, Locale.getDefault());
}
public NumberFormat getNumberFormat ()
--- /dev/null
+/* Copyright (C) 1999 Cygnus Solutions
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.util;
+
+import java.io.InputStream;
+import java.io.IOException;
+import gnu.gcj.util.EnumerationChain;
+
+/**
+ * @author Anthony Green <green@cygnus.com>
+ * @date April 29, 1999.
+ */
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3,
+ * and "The Java Language Specification", ISBN 0-201-63451-1. */
+
+public class PropertyResourceBundle extends ResourceBundle
+{
+ private Properties properties;
+
+ public PropertyResourceBundle (InputStream pstream) throws IOException
+ {
+ // Initialize and load our Properties.
+ properties = new Properties();
+ properties.load(pstream);
+ }
+
+ public Enumeration getKeys()
+ {
+ if (parent == null)
+ return properties.propertyNames();
+ else
+ return new EnumerationChain (properties.propertyNames(),
+ parent.getKeys ());
+ }
+
+ protected Object handleGetObject (String key)
+ {
+ return properties.getProperty(key);
+ }
+}