diff options
Diffstat (limited to 'libjava/classpath/gnu/xml/xpath/NameFunction.java')
-rw-r--r-- | libjava/classpath/gnu/xml/xpath/NameFunction.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libjava/classpath/gnu/xml/xpath/NameFunction.java b/libjava/classpath/gnu/xml/xpath/NameFunction.java index ea49741fa57..239a53453be 100644 --- a/libjava/classpath/gnu/xml/xpath/NameFunction.java +++ b/libjava/classpath/gnu/xml/xpath/NameFunction.java @@ -67,9 +67,9 @@ final class NameFunction final Expr arg; - NameFunction(List args) + NameFunction(List<Expr> args) { - this(args.size() > 0 ? (Expr) args.get(0) : null); + this(args.size() > 0 ? args.get(0) : null); } NameFunction(Expr arg) @@ -77,24 +77,30 @@ final class NameFunction this.arg = arg; } + @Override public Object evaluate(Node context, int pos, int len) { - Object val = (arg == null) ? Collections.singleton(context) : - arg.evaluate(context, pos, len); - return _name(context, (Collection) val); + /* Suppression is safe, as we know context produces Collection<Node> */ + @SuppressWarnings("unchecked") + Collection<Node> val = (arg == null) ? Collections.singleton(context) : + (Collection<Node>) arg.evaluate(context, pos, len); + return _name(context, val); } + @Override public Expr clone(Object context) { return new NameFunction((arg == null) ? null : arg.clone(context)); } - + + @Override public boolean references(QName var) { return (arg == null) ? false : arg.references(var); } + @Override public String toString() { return (arg == null) ? "name()" : "name(" + arg + ")"; |