From e3884aeea7b5b9a6065446a55b28d18cabc680da Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Sat, 8 May 1999 22:21:50 +0000 Subject: [PATCH] DateFormat.java (computeInstance): Separate time and date styles. * 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. From-SVN: r26842 --- libjava/ChangeLog | 13 +++++++ libjava/Makefile.am | 2 ++ libjava/Makefile.in | 16 +++++---- libjava/gnu/gcj/util/EnumerationChain.java | 52 +++++++++++++++++++++++++++ libjava/java/text/DateFormat.java | 31 ++++++++++++---- libjava/java/util/PropertyResourceBundle.java | 47 ++++++++++++++++++++++++ 6 files changed, 148 insertions(+), 13 deletions(-) create mode 100644 libjava/gnu/gcj/util/EnumerationChain.java create mode 100644 libjava/java/util/PropertyResourceBundle.java diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 25ebb0f..d69c059 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +1999-05-9 Anthony Green + + * 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 * acconfig.h (GCJVERSION): New undef. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index e376901..260baa1 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -422,6 +422,7 @@ gnu/gcj/protocol/file/Handler.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 \ @@ -617,6 +618,7 @@ java/util/NoSuchElementException.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 \ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 85310ea..e45a1e2 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -285,6 +285,7 @@ gnu/gcj/protocol/file/Handler.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 \ @@ -480,6 +481,7 @@ java/util/NoSuchElementException.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 \ @@ -671,6 +673,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .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 \ @@ -809,12 +812,13 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.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 \ diff --git a/libjava/gnu/gcj/util/EnumerationChain.java b/libjava/gnu/gcj/util/EnumerationChain.java new file mode 100644 index 0000000..6828439 --- /dev/null +++ b/libjava/gnu/gcj/util/EnumerationChain.java @@ -0,0 +1,52 @@ +/* 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(); + } +} diff --git a/libjava/java/text/DateFormat.java b/libjava/java/text/DateFormat.java index bfd6b01..a841133 100644 --- a/libjava/java/text/DateFormat.java +++ b/libjava/java/text/DateFormat.java @@ -94,6 +94,15 @@ public abstract class DateFormat extends Format implements Cloneable 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 { @@ -108,7 +117,7 @@ public abstract class DateFormat extends Format implements Cloneable if (use_date) { String name, def; - switch (style) + switch (dateStyle) { case FULL: name = "fullDateFormat"; @@ -147,7 +156,7 @@ public abstract class DateFormat extends Format implements Cloneable pattern += " "; String name, def; - switch (style) + switch (timeStyle) { case FULL: name = "fullTimeFormat"; @@ -201,23 +210,31 @@ public abstract class DateFormat extends Format implements Cloneable 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 () diff --git a/libjava/java/util/PropertyResourceBundle.java b/libjava/java/util/PropertyResourceBundle.java new file mode 100644 index 0000000..706e427 --- /dev/null +++ b/libjava/java/util/PropertyResourceBundle.java @@ -0,0 +1,47 @@ +/* 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 + * @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); + } +} -- 2.7.4