diff options
author | Michael Koch <konqueror@gmx.de> | 2003-06-21 12:42:26 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-06-21 12:42:26 +0000 |
commit | 73c7dd50e8f9b03e6fbc64212566d1a2d603aed2 (patch) | |
tree | a6fa0c9f0fdd054674395836f55efab40ef19fe3 /libjava | |
parent | 5ee8128f1b139e4e1e6330acca7c014aee28abc7 (diff) | |
download | gcc-73c7dd50e8f9b03e6fbc64212566d1a2d603aed2.zip gcc-73c7dd50e8f9b03e6fbc64212566d1a2d603aed2.tar.gz gcc-73c7dd50e8f9b03e6fbc64212566d1a2d603aed2.tar.bz2 |
DateFormat.java, [...]: New versions from classpath.
2003-06-21 Michael Koch <konqueror@gmx.de>
* java/text/DateFormat.java,
java/text/SimpleDateFormat.java,
java/util/Locale.java:
New versions from classpath.
From-SVN: r68300
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 7 | ||||
-rw-r--r-- | libjava/java/text/DateFormat.java | 14 | ||||
-rw-r--r-- | libjava/java/text/SimpleDateFormat.java | 15 | ||||
-rw-r--r-- | libjava/java/util/Locale.java | 20 |
4 files changed, 40 insertions, 16 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 34a9282..2c84790 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,12 @@ 2003-06-21 Michael Koch <konqueror@gmx.de> + * java/text/DateFormat.java, + java/text/SimpleDateFormat.java, + java/util/Locale.java: + New versions from classpath. + +2003-06-21 Michael Koch <konqueror@gmx.de> + * javax/swing/SpinnerModel.java: New file from classpath. * javax/swing/border/LineBorder.java, diff --git a/libjava/java/text/DateFormat.java b/libjava/java/text/DateFormat.java index c298ef2..df2b270 100644 --- a/libjava/java/text/DateFormat.java +++ b/libjava/java/text/DateFormat.java @@ -101,7 +101,7 @@ public abstract class DateFormat extends Format implements Cloneable * <ul> * <li>Is not <code>null</code>. * <li>Is an instance of <code>DateFormat</code>. - * <li>Has the same calendar and numberFormat field values as this object. + * <li>Has the same numberFormat field value as this object. * </ul> * * @param obj The object to test for equality against. @@ -111,10 +111,12 @@ public abstract class DateFormat extends Format implements Cloneable */ public boolean equals (Object obj) { - if (! (obj instanceof DateFormat)) + if (!(obj instanceof DateFormat)) return false; + DateFormat d = (DateFormat) obj; - return calendar.equals(d.calendar) && numberFormat.equals(d.numberFormat); + + return numberFormat.equals(d.numberFormat); } /** @@ -467,10 +469,10 @@ public abstract class DateFormat extends Format implements Cloneable */ public int hashCode () { - int hash = calendar.hashCode(); if (numberFormat != null) - hash ^= numberFormat.hashCode(); - return hash; + return numberFormat.hashCode(); + else + return 0; } /** diff --git a/libjava/java/text/SimpleDateFormat.java b/libjava/java/text/SimpleDateFormat.java index 7b282f3..67523e1 100644 --- a/libjava/java/text/SimpleDateFormat.java +++ b/libjava/java/text/SimpleDateFormat.java @@ -384,10 +384,10 @@ public class SimpleDateFormat extends DateFormat SimpleDateFormat sdf = (SimpleDateFormat)o; - if (!toPattern().equals(sdf.toPattern())) + if (defaultCentury != sdf.defaultCentury) return false; - if (!get2DigitYearStart().equals(sdf.get2DigitYearStart())) + if (!toPattern().equals(sdf.toPattern())) return false; if (!getDateFormatSymbols().equals(sdf.getDateFormatSymbols())) @@ -396,6 +396,17 @@ public class SimpleDateFormat extends DateFormat return true; } + /** + * This method returns a hash value for this object. + * + * @return A hash value for this object. + */ + public int hashCode() + { + return super.hashCode() ^ toPattern().hashCode() ^ defaultCentury ^ + getDateFormatSymbols().hashCode(); + } + /** * Formats the date input according to the format string in use, diff --git a/libjava/java/util/Locale.java b/libjava/java/util/Locale.java index 60fdd0a..431824f 100644 --- a/libjava/java/util/Locale.java +++ b/libjava/java/util/Locale.java @@ -231,9 +231,9 @@ public final class Locale implements Serializable, Cloneable // default locale. if (defaultLocale != null) { - language = convertLanguage(language); - country = country.toUpperCase(); - variant = variant.toUpperCase(); + language = convertLanguage(language).intern(); + country = country.toUpperCase().intern(); + variant = variant.toUpperCase().intern(); } this.language = language; this.country = country; @@ -436,7 +436,7 @@ public final class Locale implements Serializable, Cloneable */ public String getISO3Language() { - if ("".equals(language)) + if (language == "") return ""; int index = ("aa,ab,af,am,ar,as,ay,az,ba,be,bg,bh,bi,bn,bo,br,ca,co,cs,cy,da," @@ -472,7 +472,7 @@ public final class Locale implements Serializable, Cloneable */ public String getISO3Country() { - if ("".equals(country)) + if (country == "") return ""; int index = ("AD,AE,AF,AG,AI,AL,AM,AN,AO,AQ,AR,AS,AT,AU,AW,AZ,BA,BB,BD,BE,BF," @@ -729,9 +729,13 @@ public final class Locale implements Serializable, Cloneable return false; Locale l = (Locale) obj; - return (language.equals(l.language) - && country.equals(l.country) - && variant.equals(l.variant)); + // ??? We might also want to add: + // hashCode() == l.hashCode() + // But this is a synchronized method. Is the overhead worth it? + // Measure this to make a decision. + return (language == l.language + && country == l.country + && variant == l.variant); } /** |