diff options
Diffstat (limited to 'libjava/classpath/gnu/xml/xpath/EqualityExpr.java')
-rw-r--r-- | libjava/classpath/gnu/xml/xpath/EqualityExpr.java | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/libjava/classpath/gnu/xml/xpath/EqualityExpr.java b/libjava/classpath/gnu/xml/xpath/EqualityExpr.java index 6d00cee89a9..3b6fd568a86 100644 --- a/libjava/classpath/gnu/xml/xpath/EqualityExpr.java +++ b/libjava/classpath/gnu/xml/xpath/EqualityExpr.java @@ -62,6 +62,7 @@ final class EqualityExpr this.invert = invert; } + @Override public Object evaluate(Node context, int pos, int len) { boolean val = evaluateImpl(context, pos, len); @@ -90,19 +91,20 @@ final class EqualityExpr boolean frns = right instanceof Collection; if (flns && frns) { - Collection lns = (Collection) left; - Collection rns = (Collection) right; + /* Suppression is safe, as we know context produces Collection<Node> */ + @SuppressWarnings("unchecked") + Collection<Node> lns = (Collection<Node>) left; + @SuppressWarnings("unchecked") + Collection<Node> rns = (Collection<Node>) right; if (lns.isEmpty()) { return false; } boolean all = true; - for (Iterator i = lns.iterator(); i.hasNext(); ) - { - Node ltest = (Node) i.next(); - for (Iterator j = rns.iterator(); j.hasNext(); ) - { - Node rtest = (Node) j.next(); + for (Node ltest : lns) + { + for (Node rtest : rns) + { if (ltest == rtest || ltest.equals(rtest)) { // much shorter @@ -138,13 +140,14 @@ final class EqualityExpr boolean frn = right instanceof Double; if ((flns && frn) || (frns && fln)) { - Collection ns = flns ? (Collection) left : (Collection) right; + /* Suppression is safe, as we know context produces Collection<Node> */ + @SuppressWarnings("unchecked") + Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right; double n = fln ? ((Double) left).doubleValue() : ((Double) right).doubleValue(); boolean all = true; - for (Iterator i = ns.iterator(); i.hasNext(); ) + for (Node test : ns) { - Node test = (Node) i.next(); double nn = _number(context, stringValue(test)); if (nn == n) { @@ -171,12 +174,13 @@ final class EqualityExpr boolean frs = right instanceof String; if ((flns && frs) || (frns && fls)) { - Collection ns = flns ? (Collection) left : (Collection) right; + /* Suppression is safe, as we know context produces Collection<Node> */ + @SuppressWarnings("unchecked") + Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right; String s = fls ? (String) left : (String) right; boolean all = true; - for (Iterator i = ns.iterator(); i.hasNext(); ) + for (Node test : ns) { - Node test = (Node) i.next(); if (stringValue(test).equals(s)) { if (!invert) @@ -202,7 +206,9 @@ final class EqualityExpr boolean frb = right instanceof Boolean; if ((flns && frb) || (frns && flb)) { - Collection ns = flns ? (Collection) left : (Collection) right; + /* Suppression is safe, as we know context produces Collection<Node> */ + @SuppressWarnings("unchecked") + Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right; boolean b = flb ? ((Boolean) left).booleanValue() : ((Boolean) right).booleanValue(); return _boolean(context, ns) == b; |