aboutsummaryrefslogtreecommitdiff
path: root/libjava/javax
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2005-04-02 21:03:33 +0000
committerMichael Koch <konqueror@gmx.de>2005-04-02 21:03:33 +0000
commit2f3b834c473590a151570a7b45332b1c131d9716 (patch)
tree8e3a5971db0738aaca3407db3306275981f32ca6 /libjava/javax
parent367df4bcef17bf35b22d4e4057f87c0dae699a12 (diff)
2005-04-02 Mark Wielaard <mark@klomp.org>
* javax/naming/directory/BasicAttributes.java (equals): Compare to any Attributes and attribute order doesn't matter. (BasicAttributesEnumeration.where): Initialize to zero. (BasicAttributesEnumeration.nextElement): Update and compare where appropriately (zero based). git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@97461 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/javax')
-rw-r--r--libjava/javax/naming/directory/BasicAttributes.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/libjava/javax/naming/directory/BasicAttributes.java b/libjava/javax/naming/directory/BasicAttributes.java
index 9a9a80019a4..b20072424bc 100644
--- a/libjava/javax/naming/directory/BasicAttributes.java
+++ b/libjava/javax/naming/directory/BasicAttributes.java
@@ -1,5 +1,5 @@
/* BasicAttributes.java --
- Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -83,19 +83,27 @@ public class BasicAttributes implements Attributes
return ba;
}
+ /**
+ * Returns true if and only if the given Object is an instance of
+ * Attributes, the given attributes both do or don't ignore case for
+ * IDs and the collection of attributes is the same.
+ */
public boolean equals (Object obj)
{
- if (! (obj instanceof BasicAttributes))
+ if (! (obj instanceof Attributes))
return false;
- BasicAttributes b = (BasicAttributes) obj;
- if (ignoreCase != b.ignoreCase
- || attributes.size () != b.attributes.size ())
+
+ Attributes bs = (Attributes) obj;
+ if (ignoreCase != bs.isCaseIgnored()
+ || attributes.size () != bs.size ())
return false;
- // Does order matter?
- for (int i = 0; i < attributes.size (); ++i)
+ NamingEnumeration bas = bs.getAll();
+ while (bas.hasMoreElements())
{
- if (! attributes.get (i).equals (b.attributes.get (i)))
+ Attribute a = (Attribute) bas.nextElement();
+ Attribute b = get(a.getID ());
+ if (! a.equals(b))
return false;
}
@@ -191,7 +199,7 @@ public class BasicAttributes implements Attributes
// Used when enumerating.
private class BasicAttributesEnumeration implements NamingEnumeration
{
- int where = -1;
+ int where = 0;
boolean id;
public BasicAttributesEnumeration (boolean id)
@@ -220,10 +228,10 @@ public class BasicAttributes implements Attributes
public Object nextElement () throws NoSuchElementException
{
- if (where + 1 >= attributes.size ())
+ if (where >= attributes.size ())
throw new NoSuchElementException ("no more elements");
- ++where;
Attribute at = (Attribute) attributes.get (where);
+ ++where;
return id ? (Object) at.getID () : (Object) at;
}
}