From a0e894a8cc0344dbbefc57523ff53e990854fcfb Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 30 Apr 1999 09:31:00 +0000 Subject: StringBuffer.java (ensureCapacity): Don't resize vector when shared. * java/lang/StringBuffer.java (ensureCapacity): Don't resize vector when shared. * java/util/Locale.java (Locale(String,String)): Implement in terms of 3-argument version; variant now defaults to empty string. (toString): Assume variant is not null. (equals): Assume all strings are not null. (Locale): Throw NullPointerException if any argument is null. * java/util/ResourceBundle.java (getBundle): Don't try the base name; now implicit in partialGetBundle call. (trySomeGetBundle): Search for parent bundles and call setParent as required. (partialGetBundle): Added `langStop' argument. Use `Locale.toString' to compute bundleName. (resource_cache): New static field. (partialGetBundle): Cache the returned resource bundle. Now synchronized. * gnu/gcj/text/LocaleData_en.java (contents): [collatorRule] Added missing `<'. * mauve-libgcj: Enable Collator and RuleBasedCollator. * java/text/natCollator.cc (decomposeCharacter): `base' now `const'. * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Added CollationElementIterator, CollationKey, Collator, RuleBasedCollator. (nat_source_files): Added natCollator.cc. * java/text/RuleBasedCollator.java (ceiNext): No longer static. (compare): Pass `this' to CollationElementIterator constructor. (getCollationElementIterator): Likewise. (ceiNext): Fix off-by-one error when finding initial substring. (next): Correctly mask off bits when computing return value. Fixed return values when one string is shorter than the other. * java/text/CollationElementIterator.java (collator): New field. (CollationElementIterator): Added collator argument. (next): Call ceiNext on collator object. From-SVN: r26707 --- libjava/java/util/Locale.java | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'libjava/java/util/Locale.java') diff --git a/libjava/java/util/Locale.java b/libjava/java/util/Locale.java index e47cd1d59d7..627841499aa 100644 --- a/libjava/java/util/Locale.java +++ b/libjava/java/util/Locale.java @@ -36,33 +36,34 @@ public final class Locale implements java.io.Serializable, Cloneable public Locale (String languageCode, String countryCode) { - language = languageCode.toLowerCase(); - country = countryCode.toUpperCase(); - hashcode = languageCode.hashCode() ^ countryCode.hashCode(); + this (languageCode, countryCode, ""); } public Locale (String languageCode, String countryCode, String variantCode) { - this (languageCode, countryCode); - variant = variantCode; - hashcode ^= variantCode.hashCode(); + // We must explicitly check the arguments. + if (languageCode == null || countryCode == null + || variantCode == null) + throw new NullPointerException (); + language = languageCode.toLowerCase(); + country = countryCode.toUpperCase(); + variant = variantCode.toUpperCase(); + hashcode = (languageCode.hashCode() + ^ countryCode.hashCode() + ^ variantCode.hashCode()); } public Object clone () - { - return (Object) new Locale (language, country, variant); - } + { + return (Object) new Locale (language, country, variant); + } public boolean equals (Object obj) { if (! (obj instanceof Locale)) return false; Locale loc = (Locale) obj; - if ((language == null && loc.language != null) - || (country == null && loc.country != null) - || (variant == null && loc.variant != null)) - return false; return (language.equals(loc.language) && country.equals(loc.country) && variant.equals(loc.variant)); @@ -115,7 +116,7 @@ public final class Locale implements java.io.Serializable, Cloneable result.append(language); result.append('_'); result.append(country); - if (variant != null && variant.length() > 0) + if (variant.length() > 0) { result.append('_'); result.append(variant); -- cgit v1.2.3