aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-06-21 12:42:26 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-06-21 12:42:26 +0000
commit73c7dd50e8f9b03e6fbc64212566d1a2d603aed2 (patch)
treea6fa0c9f0fdd054674395836f55efab40ef19fe3 /libjava
parent5ee8128f1b139e4e1e6330acca7c014aee28abc7 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--libjava/java/text/DateFormat.java14
-rw-r--r--libjava/java/text/SimpleDateFormat.java15
-rw-r--r--libjava/java/util/Locale.java20
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);
}
/**