More generic fixes in gnu.xml.xpath.*.
ChangeLog:
2008-06-22 Andrew John Hughes <[EMAIL PROTECTED]>
* gnu/xml/xpath/Expr.java,
* gnu/xml/xpath/FloorFunction.java,
* gnu/xml/xpath/Function.java,
* gnu/xml/xpath/FunctionCall.java,
* gnu/xml/xpath/NamespaceUriFunction.java,
* gnu/xml/xpath/ParenthesizedExpr.java,
* gnu/xml/xpath/Root.java,
* gnu/xml/xpath/Selector.java,
* gnu/xml/xpath/Steps.java:
Genericised.
--
Andrew :)
Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net
PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint = F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8
Index: gnu/xml/xpath/Expr.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/Expr.java,v
retrieving revision 1.8
diff -u -u -r1.8 Expr.java
--- gnu/xml/xpath/Expr.java 22 Jun 2008 19:43:00 -0000 1.8
+++ gnu/xml/xpath/Expr.java 22 Jun 2008 21:08:42 -0000
@@ -285,7 +285,7 @@
* empty string is returned. If the argument is omitted, it defaults to a
* node-set with the context node as its only member.
*/
- public static String _namespace_uri(Node context, Collection nodeSet)
+ public static String _namespace_uri(Node context, Collection<Node> nodeSet)
{
if (nodeSet == null || nodeSet.isEmpty())
return "";
@@ -329,11 +329,11 @@
/**
* Returns the first node in the set in document order.
*/
- static Node firstNode(Collection nodeSet)
+ static Node firstNode(Collection<Node> nodeSet)
{
- List list = new ArrayList(nodeSet);
+ List<Node> list = new ArrayList<Node>(nodeSet);
Collections.sort(list, documentOrderComparator);
- return (Node) list.get(0);
+ return list.get(0);
}
/* -- 4.2 String Functions -- */
Index: gnu/xml/xpath/FloorFunction.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/FloorFunction.java,v
retrieving revision 1.3
diff -u -u -r1.3 FloorFunction.java
--- gnu/xml/xpath/FloorFunction.java 9 Jul 2005 20:38:35 -0000 1.3
+++ gnu/xml/xpath/FloorFunction.java 22 Jun 2008 21:08:42 -0000
@@ -54,9 +54,9 @@
final Expr arg;
- FloorFunction(List args)
+ FloorFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
FloorFunction(Expr arg)
@@ -64,6 +64,7 @@
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
Index: gnu/xml/xpath/Function.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/Function.java,v
retrieving revision 1.2
diff -u -u -r1.2 Function.java
--- gnu/xml/xpath/Function.java 2 Jul 2005 20:32:22 -0000 1.2
+++ gnu/xml/xpath/Function.java 22 Jun 2008 21:08:42 -0000
@@ -51,7 +51,7 @@
/**
* Sets the list of expressions to evaluate as parameter values.
*/
- void setArguments(List args);
+ void setArguments(List<Expr> args);
}
Index: gnu/xml/xpath/FunctionCall.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/FunctionCall.java,v
retrieving revision 1.5
diff -u -u -r1.5 FunctionCall.java
--- gnu/xml/xpath/FunctionCall.java 28 Apr 2008 19:52:33 -0000 1.5
+++ gnu/xml/xpath/FunctionCall.java 22 Jun 2008 21:08:42 -0000
@@ -60,20 +60,24 @@
final XPathFunctionResolver resolver;
final String name;
- final List args;
+ final List<Expr> args;
public FunctionCall(XPathFunctionResolver resolver, String name)
{
- this(resolver, name, Collections.EMPTY_LIST);
+ this(resolver, name, null);
}
- public FunctionCall(XPathFunctionResolver resolver, String name, List args)
+ public FunctionCall(XPathFunctionResolver resolver, String name, List<Expr>
args)
{
this.resolver = resolver;
this.name = name;
- this.args = args;
+ if (args == null)
+ this.args = Collections.emptyList();
+ else
+ this.args = args;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
if (resolver != null)
@@ -94,7 +98,7 @@
}
else
{
- List values = new ArrayList(arity);
+ List<Object> values = new ArrayList<Object>(arity);
for (int i = 0; i < arity; i++)
{
Expr arg = (Expr) args.get(i);
@@ -119,10 +123,10 @@
public Expr clone(Object context)
{
int len = args.size();
- List args2 = new ArrayList(len);
+ List<Expr> args2 = new ArrayList<Expr>(len);
for (int i = 0; i < len; i++)
{
- args2.add(((Expr) args.get(i)).clone(context));
+ args2.add(args.get(i).clone(context));
}
XPathFunctionResolver r = resolver;
if (context instanceof XPathFunctionResolver)
@@ -134,9 +138,9 @@
public boolean references(QName var)
{
- for (Iterator i = args.iterator(); i.hasNext(); )
+ for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
{
- if (((Expr) i.next()).references(var))
+ if (i.next().references(var))
{
return true;
}
Index: gnu/xml/xpath/NamespaceUriFunction.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/NamespaceUriFunction.java,v
retrieving revision 1.4
diff -u -u -r1.4 NamespaceUriFunction.java
--- gnu/xml/xpath/NamespaceUriFunction.java 11 Jan 2006 22:05:45 -0000
1.4
+++ gnu/xml/xpath/NamespaceUriFunction.java 22 Jun 2008 21:08:42 -0000
@@ -59,9 +59,9 @@
final Expr arg;
- NamespaceUriFunction(List args)
+ NamespaceUriFunction(List<Expr> args)
{
- this(args.size() > 0 ? (Expr) args.get(0) : null);
+ this(args.size() > 0 ? args.get(0) : null);
}
NamespaceUriFunction(Expr arg)
@@ -69,11 +69,12 @@
this.arg = arg;
}
+ @Override @SuppressWarnings("unchecked")
public Object evaluate(Node context, int pos, int len)
{
Object val = (arg == null) ? Collections.singleton(context) :
arg.evaluate(context, pos, len);
- return _namespace_uri(context, (Collection) val);
+ return _namespace_uri(context, (Collection<Node>) val);
}
public Expr clone(Object context)
Index: gnu/xml/xpath/ParenthesizedExpr.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/ParenthesizedExpr.java,v
retrieving revision 1.3
diff -u -u -r1.3 ParenthesizedExpr.java
--- gnu/xml/xpath/ParenthesizedExpr.java 9 Jul 2005 20:38:36 -0000
1.3
+++ gnu/xml/xpath/ParenthesizedExpr.java 22 Jun 2008 21:08:42 -0000
@@ -60,12 +60,13 @@
this.expr = expr;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object ret = expr.evaluate(context, pos, len);
if (ret instanceof Collection)
{
- List list = new ArrayList((Collection) ret);
+ List<Node> list = new ArrayList<Node>((Collection<Node>) ret);
Collections.sort(list, documentOrderComparator);
ret = list;
}
Index: gnu/xml/xpath/Root.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/Root.java,v
retrieving revision 1.3
diff -u -u -r1.3 Root.java
--- gnu/xml/xpath/Root.java 9 Jul 2005 20:38:36 -0000 1.3
+++ gnu/xml/xpath/Root.java 22 Jun 2008 21:08:42 -0000
@@ -39,6 +39,8 @@
import java.util.Collection;
import java.util.Collections;
+import java.util.Set;
+
import javax.xml.namespace.QName;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -59,12 +61,14 @@
public Object evaluate(Node context, int pos, int len)
{
- return evaluate(context, Collections.EMPTY_SET);
+ Set<Node> emptySet = Collections.emptySet();
+ return evaluate(context, emptySet);
}
- Collection evaluate(Node context, Collection ns)
+ @Override
+ Collection<Node> evaluate(Node context, Collection<Node> ns)
{
- Document doc = (context instanceof Document) ? (Document) context :
+ Node doc = (context instanceof Document) ? context :
context.getOwnerDocument();
return Collections.singleton(doc);
}
Index: gnu/xml/xpath/Selector.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/Selector.java,v
retrieving revision 1.10
diff -u -u -r1.10 Selector.java
--- gnu/xml/xpath/Selector.java 22 Jun 2008 19:43:01 -0000 1.10
+++ gnu/xml/xpath/Selector.java 22 Jun 2008 21:08:42 -0000
@@ -190,7 +190,7 @@
return ret;
}
- Collection evaluate(Node context, Collection<Node> ns)
+ Collection<Node> evaluate(Node context, Collection<Node> ns)
{
Set<Node> acc = new LinkedHashSet<Node>();
for (Iterator<Node> i = ns.iterator(); i.hasNext(); )
@@ -417,7 +417,7 @@
public Expr clone(Object context)
{
int len = tests.length;
- List tests2 = new ArrayList(len);
+ List<Test> tests2 = new ArrayList<Test>(len);
for (int i = 0; i < len; i++)
tests2.add(tests[i].clone(context));
return new Selector(axis, tests2);
Index: gnu/xml/xpath/Steps.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/xml/xpath/Steps.java,v
retrieving revision 1.5
diff -u -u -r1.5 Steps.java
--- gnu/xml/xpath/Steps.java 22 Jun 2008 19:43:01 -0000 1.5
+++ gnu/xml/xpath/Steps.java 22 Jun 2008 21:08:42 -0000
@@ -160,7 +160,7 @@
return Collections.emptySet();
}
- @Override
+ @Override @SuppressWarnings("unchecked")
public Object evaluate(Node context, int pos, int len)
{
//System.err.println(toString()+" evaluate");
@@ -172,13 +172,13 @@
while (val instanceof Collection && i.hasNext())
{
Path rhs = (Path) i.next();
- val = rhs.evaluate(context, (Collection) val);
+ val = rhs.evaluate(context, (Collection<Node>) val);
//System.err.println("\tevaluate "+rhs+" = "+val);
}
return val;
}
- @Override
+ @Override @SuppressWarnings("unchecked")
Collection<Node> evaluate(Node context, Collection<Node> ns)
{
// Left to right