aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-09-05 19:32:57 +0000
committerTom Tromey <tromey@gcc.gnu.org>2001-09-05 19:32:57 +0000
commit7dcc5966f0e739470271e5abaf890ae5d303a4dc (patch)
treea542ad80059a7f989df6daa2b8a9dfb4488f5f4b /libjava/java
parent666b0481c3a8e10c6f856c6000c6825962731430 (diff)
downloadgcc-7dcc5966f0e739470271e5abaf890ae5d303a4dc.zip
gcc-7dcc5966f0e739470271e5abaf890ae5d303a4dc.tar.gz
gcc-7dcc5966f0e739470271e5abaf890ae5d303a4dc.tar.bz2
From Eric Blake, via Classpath:
* java/lang/String.java (CaseInsensitiveComparator): New class. (CASE_INSENSITIVE_ORDER): Use instance of CaseInsensitiveComparator. From-SVN: r45425
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/String.java43
1 files changed, 37 insertions, 6 deletions
diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java
index fa59986..bed3171 100644
--- a/libjava/java/lang/String.java
+++ b/libjava/java/lang/String.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj.
@@ -32,13 +32,44 @@ public final class String implements Serializable, Comparable
// but it will avoid showing up as a discrepancy when comparing SUIDs.
private static final long serialVersionUID = -6849794470754667710L;
- public static final Comparator CASE_INSENSITIVE_ORDER = new Comparator()
- {
- public int compare (Object o1, Object o2)
+ /**
+ * An implementation for {@link CASE_INSENSITIVE_ORDER}.
+ * This must be {@link Serializable}.
+ */
+ private static final class CaseInsensitiveComparator
+ implements Comparator, Serializable
+ {
+ /**
+ * The default private constructor generates unnecessary overhead
+ */
+ CaseInsensitiveComparator() {}
+
+ /**
+ * Compares two Strings, using
+ * <code>String.compareToIgnoreCase(String)</code>.
+ *
+ * @param o1 the first string
+ * @param o2 the second string
+ * @return &lt; 0, 0, or &gt; 0 depending on the case-insensitive
+ * comparison of the two strings.
+ * @throws NullPointerException if either argument is null
+ * @throws ClassCastException if either argument is not a String
+ * @see #compareToIgnoreCase(String)
+ */
+ public int compare(Object o1, Object o2)
{
- return ((String) o1).compareToIgnoreCase ((String) o2);
+ return ((String) o1).compareToIgnoreCase((String) o2);
}
- };
+ }
+
+ /**
+ * A Comparator that uses <code>String.compareToIgnoreCase(String)</code>.
+ * This comparator is {@link Serializable}.
+ *
+ * @since 1.2
+ */
+ public static final Comparator CASE_INSENSITIVE_ORDER
+ = new CaseInsensitiveComparator();
public String ()
{