Bringing back NodeTransform
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0ef8184f Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0ef8184f Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0ef8184f Branch: refs/heads/add-contract-tests Commit: 0ef8184f7b8b49cd2c7a9fdf702649495e62d435 Parents: 6711901 Author: ajs6f <[email protected]> Authored: Tue May 5 12:50:11 2015 -0400 Committer: ajs6f <[email protected]> Committed: Tue May 5 12:50:11 2015 -0400 ---------------------------------------------------------------------- .../org/apache/jena/sparql/engine/Rename.java | 19 +++++++------ .../org/apache/jena/sparql/expr/E_Exists.java | 6 ++--- .../apache/jena/sparql/expr/E_NotExists.java | 6 ++--- .../java/org/apache/jena/sparql/expr/Expr.java | 6 ++--- .../apache/jena/sparql/expr/ExprAggregator.java | 5 ++-- .../apache/jena/sparql/expr/ExprFunction0.java | 6 ++--- .../apache/jena/sparql/expr/ExprFunction1.java | 6 ++--- .../apache/jena/sparql/expr/ExprFunction2.java | 6 ++--- .../apache/jena/sparql/expr/ExprFunction3.java | 6 ++--- .../apache/jena/sparql/expr/ExprFunctionN.java | 6 ++--- .../org/apache/jena/sparql/expr/ExprList.java | 6 ++--- .../org/apache/jena/sparql/expr/ExprNode.java | 6 ++--- .../org/apache/jena/sparql/expr/ExprVar.java | 5 ++-- .../org/apache/jena/sparql/expr/NodeValue.java | 5 ++-- .../jena/sparql/expr/aggregate/Aggregator.java | 5 ++-- .../sparql/expr/aggregate/AggregatorBase.java | 5 ++-- .../apache/jena/sparql/graph/NodeTransform.java | 6 +---- .../jena/sparql/graph/NodeTransformLib.java | 28 +++++++++----------- .../jena/sparql/graph/NodeTransformOp.java | 6 ++--- .../modify/NodeTransformBNodesToVariables.java | 5 ++-- .../jena/sparql/modify/UpdateEngineWorker.java | 5 ++-- .../jena/sparql/resultset/ResultSetCompare.java | 13 ++------- .../org/apache/jena/sparql/util/NodeUtils.java | 5 +++- .../jena/riot/thrift/TestResultSetThrift.java | 11 -------- .../query/rewriter/SecuredFunction.java | 5 ++-- 25 files changed, 67 insertions(+), 121 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java index bc1d4ea..966941d 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/Rename.java @@ -22,14 +22,13 @@ import java.util.Collection ; import java.util.HashMap ; import java.util.Map ; import java.util.Set ; -import java.util.function.Function; - import org.apache.jena.graph.Node ; import org.apache.jena.sparql.ARQConstants ; import org.apache.jena.sparql.algebra.Op ; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.expr.Expr ; import org.apache.jena.sparql.expr.ExprList ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.graph.NodeTransformLib ; /** Support for renaming all the variables in an algebra expession @@ -49,14 +48,14 @@ public class Rename /** Rename one node to another */ public static Op renameNode(Op op, Node oldName, Node newName) { - Function<Node, Node> renamer = new RenameNode(oldName, newName) ; + NodeTransform renamer = new RenameNode(oldName, newName) ; return NodeTransformLib.transform(renamer, op) ; } /** Rename one variable to another */ public static Op renameVar(Op op, Var oldName, Var newName) { - Function<Node, Node> renamer = new RenameNode(oldName, newName) ; + NodeTransform renamer = new RenameNode(oldName, newName) ; return NodeTransformLib.transform(renamer, op) ; } @@ -76,13 +75,13 @@ public class Rename /** Rename all variables in an expression, EXCEPT for those named as constant */ public static ExprList renameVars(ExprList exprList, Set<Var> constants) { - Function<Node, Node> renamer = new RenameAnyVars(constants, prefix) ; + NodeTransform renamer = new RenameAnyVars(constants, prefix) ; return NodeTransformLib.transform(renamer, exprList) ; } public static Expr renameVars(Expr expr, Set<Var> constants) { - Function<Node, Node> renamer = new RenameAnyVars(constants, prefix) ; + NodeTransform renamer = new RenameAnyVars(constants, prefix) ; return NodeTransformLib.transform(renamer, expr) ; } @@ -90,13 +89,13 @@ public class Rename * This assumes the op was renamed by VarRename.rename */ public static Op reverseVarRename(Op op, boolean repeatedly) { - Function<Node, Node> renamer = new UnrenameAnyVars(prefix, repeatedly) ; + NodeTransform renamer = new UnrenameAnyVars(prefix, repeatedly) ; return NodeTransformLib.transform(renamer, op) ; } // ---- Transforms that do the renaming and unrenaming. - static class RenameNode implements Function<Node, Node> + static class RenameNode implements NodeTransform { private final Node oldName ; private final Node newName ; @@ -116,7 +115,7 @@ public class Rename } - static class RenameAnyVars implements Function<Node, Node> + static class RenameAnyVars implements NodeTransform { private final Map<Var, Var> aliases = new HashMap<>() ; private final Collection<Var> constants ; @@ -151,7 +150,7 @@ public class Rename } /** Reverse a renaming (assuming renaming was done by prefixing variable names) */ - static class UnrenameAnyVars implements Function<Node, Node> + static class UnrenameAnyVars implements NodeTransform { private final String varPrefix ; private final boolean repeatedly ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java index 0445350..c33839e 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Exists.java @@ -18,15 +18,13 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - -import org.apache.jena.graph.Node; import org.apache.jena.sparql.algebra.Algebra ; import org.apache.jena.sparql.algebra.Op ; import org.apache.jena.sparql.core.Substitute ; import org.apache.jena.sparql.engine.QueryIterator ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.graph.NodeTransformLib ; import org.apache.jena.sparql.sse.Tags ; import org.apache.jena.sparql.syntax.Element ; @@ -58,7 +56,7 @@ public class E_Exists extends ExprFunctionOp } @Override - public Expr applyNodeTransform(Function<Node, Node> nodeTransform) + public Expr applyNodeTransform(NodeTransform nodeTransform) { Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ; return new E_Exists(getElement(), op2) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java index 250d105..e236970 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_NotExists.java @@ -18,15 +18,13 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - -import org.apache.jena.graph.Node; import org.apache.jena.sparql.algebra.Algebra ; import org.apache.jena.sparql.algebra.Op ; import org.apache.jena.sparql.core.Substitute ; import org.apache.jena.sparql.engine.QueryIterator ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.graph.NodeTransformLib ; import org.apache.jena.sparql.sse.Tags ; import org.apache.jena.sparql.syntax.Element ; @@ -59,7 +57,7 @@ public class E_NotExists extends ExprFunctionOp } @Override - public Expr applyNodeTransform(Function<Node, Node> nodeTransform) + public Expr applyNodeTransform(NodeTransform nodeTransform) { Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ; return new E_NotExists(getElement(), op2) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java index 124a842..3358575 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java @@ -20,14 +20,12 @@ package org.apache.jena.sparql.expr; import java.util.Collection ; import java.util.Set ; -import java.util.function.Function; - import javax.xml.datatype.DatatypeConstants ; -import org.apache.jena.graph.Node; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; public interface Expr { @@ -64,7 +62,7 @@ public interface Expr /** * Rewrite, applying a node->node transformation */ - public Expr applyNodeTransform(Function<Node, Node> transform) ; + public Expr applyNodeTransform(NodeTransform transform) ; /** Deep copy */ public Expr deepCopy() ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java index 24a2fa5..ed79caf 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprAggregator.java @@ -19,8 +19,6 @@ package org.apache.jena.sparql.expr; import java.util.Objects; -import java.util.function.Function; - import org.apache.jena.atlas.lib.Lib ; import org.apache.jena.atlas.logging.Log ; import org.apache.jena.graph.Node ; @@ -29,6 +27,7 @@ import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.expr.aggregate.Aggregator ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.serializer.SerializationContext ; /** Group aggregation functions calculated a value during grouping and @@ -108,7 +107,7 @@ public class ExprAggregator extends ExprNode } @Override - public ExprAggregator applyNodeTransform(Function<Node, Node> transform) + public ExprAggregator applyNodeTransform(NodeTransform transform) { // Can't rewrite this to a non-variable. Node node = transform.apply(var) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java index 696393c..8175b12 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction0.java @@ -18,11 +18,9 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - -import org.apache.jena.graph.Node; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; /** An expression that is constant (does not depend on evaluating a sub expression). */ @@ -55,7 +53,7 @@ public abstract class ExprFunction0 extends ExprFunction public abstract NodeValue eval(FunctionEnv env) ; @Override - final public Expr applyNodeTransform(Function<Node, Node> transform) + final public Expr applyNodeTransform(NodeTransform transform) { // Nothing to transform. return copy() ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java index e55548d..8c91cb3 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction1.java @@ -18,12 +18,10 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - import org.apache.jena.atlas.lib.Lib ; -import org.apache.jena.graph.Node; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; /** A function that has a single argument */ @@ -86,7 +84,7 @@ public abstract class ExprFunction1 extends ExprFunction } @Override - final public Expr applyNodeTransform(Function<Node, Node> transform) + final public Expr applyNodeTransform(NodeTransform transform) { Expr e = (expr == null ? null : expr.applyNodeTransform(transform)) ; return copy(e) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java index 79a824f..06cb6ea 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction2.java @@ -18,12 +18,10 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - import org.apache.jena.atlas.lib.Lib ; -import org.apache.jena.graph.Node; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; /** A function of two arguments */ @@ -97,7 +95,7 @@ public abstract class ExprFunction2 extends ExprFunction @Override - final public Expr applyNodeTransform(Function<Node, Node> transform) + final public Expr applyNodeTransform(NodeTransform transform) { Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ; Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java index f6d9a41..d003ed2 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction3.java @@ -18,12 +18,10 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - import org.apache.jena.atlas.lib.Lib ; -import org.apache.jena.graph.Node; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; /** A function of three arguments */ @@ -107,7 +105,7 @@ public abstract class ExprFunction3 extends ExprFunction @Override - final public Expr applyNodeTransform(Function<Node, Node> transform) + final public Expr applyNodeTransform(NodeTransform transform) { Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ; Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java index d2cf110..76300ad 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunctionN.java @@ -20,11 +20,9 @@ package org.apache.jena.sparql.expr; import java.util.ArrayList ; import java.util.List ; -import java.util.function.Function; - -import org.apache.jena.graph.Node; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; /** A function which takes N arguments (N may be variable e.g. regex) */ @@ -82,7 +80,7 @@ public abstract class ExprFunctionN extends ExprFunction } @Override - public Expr applyNodeTransform(Function<Node, Node> transform) + public Expr applyNodeTransform(NodeTransform transform) { ExprList newArgs = new ExprList() ; for ( int i = 1 ; i <= numArgs() ; i++ ) http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java index d526bba..9e56851 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java @@ -19,12 +19,10 @@ package org.apache.jena.sparql.expr; import java.util.* ; -import java.util.function.Function; - -import org.apache.jena.graph.Node; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.ExecutionContext ; import org.apache.jena.sparql.engine.binding.Binding ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.util.Context ; public class ExprList implements Iterable<Expr> @@ -77,7 +75,7 @@ public class ExprList implements Iterable<Expr> /** * Rewrite, applying a node->node transformation */ - public ExprList applyNodeTransform(Function<Node, Node> transform) { + public ExprList applyNodeTransform(NodeTransform transform) { ExprList x = new ExprList() ; for ( Expr e : expressions) x.add(e.applyNodeTransform(transform)); http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java index 87eec7f..9b8c45f 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java @@ -20,14 +20,12 @@ package org.apache.jena.sparql.expr; import java.util.Collection ; import java.util.Set ; -import java.util.function.Function; - -import org.apache.jena.graph.Node; import org.apache.jena.sparql.algebra.Op ; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.util.ExprUtils ; @@ -86,7 +84,7 @@ public abstract class ExprNode implements Expr public abstract Expr copySubstitute(Binding binding) ; @Override - public abstract Expr applyNodeTransform(Function<Node, Node> transform) ; + public abstract Expr applyNodeTransform(NodeTransform transform) ; // ---- Default implementations http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java index a1a589f..df07897 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVar.java @@ -18,8 +18,6 @@ package org.apache.jena.sparql.expr; -import java.util.function.Function; - import org.apache.jena.atlas.io.IndentedWriter ; import org.apache.jena.graph.Node ; import org.apache.jena.query.Query ; @@ -27,6 +25,7 @@ import org.apache.jena.sparql.ARQInternalErrorException ; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; /** An expression that is a variable in an expression. */ @@ -76,7 +75,7 @@ public class ExprVar extends ExprNode } @Override - public Expr applyNodeTransform(Function<Node, Node> transform) + public Expr applyNodeTransform(NodeTransform transform) { Node node = transform.apply(varNode) ; if ( Var.isVar(node)) http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java index d960de1..8cff836 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java @@ -51,8 +51,6 @@ import java.util.Calendar ; import java.util.Iterator ; import java.util.Properties ; import java.util.ServiceLoader ; -import java.util.function.Function; - import javax.xml.datatype.DatatypeConfigurationException ; import javax.xml.datatype.DatatypeFactory ; import javax.xml.datatype.Duration ; @@ -76,6 +74,7 @@ import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.expr.nodevalue.* ; import org.apache.jena.sparql.function.FunctionEnv ; import org.apache.jena.sparql.graph.NodeConst ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.serializer.SerializationContext ; import org.apache.jena.sparql.util.* ; import org.apache.jena.vocabulary.RDF ; @@ -468,7 +467,7 @@ public abstract class NodeValue extends ExprNode } @Override - public Expr applyNodeTransform(Function<Node, Node> transform) + public Expr applyNodeTransform(NodeTransform transform) { Node n = asNode() ; n = transform.apply(n) ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java index 553202c..a3d6a6f 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/Aggregator.java @@ -18,10 +18,9 @@ package org.apache.jena.sparql.expr.aggregate; -import java.util.function.Function; - import org.apache.jena.graph.Node ; import org.apache.jena.sparql.expr.ExprList ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.serializer.SerializationContext ; /** An Aggregator is the processor for the whole result stream. @@ -47,7 +46,7 @@ public interface Aggregator public ExprList getExprList() ; public Aggregator copy(ExprList exprs) ; - public Aggregator copyTransform(Function<Node, Node> transform) ; + public Aggregator copyTransform(NodeTransform transform) ; @Override public int hashCode() ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java index 7fb321b..23c5ccd 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/aggregate/AggregatorBase.java @@ -21,8 +21,6 @@ package org.apache.jena.sparql.expr.aggregate; import java.util.HashMap ; import java.util.Locale ; import java.util.Map ; -import java.util.function.Function; - import org.apache.jena.atlas.io.IndentedLineBuffer ; import org.apache.jena.graph.Node ; import org.apache.jena.sparql.ARQInternalErrorException ; @@ -30,6 +28,7 @@ import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.expr.Expr ; import org.apache.jena.sparql.expr.ExprList ; import org.apache.jena.sparql.expr.NodeValue ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.serializer.SerializationContext ; import org.apache.jena.sparql.sse.writers.WriterExpr ; import org.apache.jena.sparql.util.ExprUtils ; @@ -86,7 +85,7 @@ public abstract class AggregatorBase implements Aggregator public String key() { return toPrefixString() ; } @Override - public final Aggregator copyTransform(Function<Node, Node> transform) + public final Aggregator copyTransform(NodeTransform transform) { ExprList e = getExprList() ; if ( e != null ) http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java index a22da5f..90de6fe 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransform.java @@ -23,11 +23,7 @@ import java.util.function.Function; import org.apache.jena.graph.Node ; /** Convert nodes to nodes - Vars may need to be translated into Vars. */ -/** - * Prefer {@link Function<Node, Node>}. - * - */ -@Deprecated +@FunctionalInterface public interface NodeTransform extends Function<Node, Node> { } http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java index 34ba4fb..ce0c517 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformLib.java @@ -22,8 +22,6 @@ import java.util.ArrayList ; import java.util.Iterator ; import java.util.List ; import java.util.Objects; -import java.util.function.Function; - import org.apache.jena.atlas.iterator.Iter ; import org.apache.jena.graph.Node ; import org.apache.jena.graph.Triple ; @@ -43,14 +41,14 @@ import org.apache.jena.sparql.expr.ExprList ; public class NodeTransformLib { /** Do a node->node conversion of an Op - return original BGP for "no change" */ - public static Op transform(Function<Node, Node> nodeTransform, Op op) + public static Op transform(NodeTransform nodeTransform, Op op) { Transform opTransform = new NodeTransformOp(nodeTransform) ; return Transformer.transform(opTransform, null, op) ; // No expr transform - we do it ourselves. } /** Do a node->node conversion of a BGP - return original BGP for "no change" */ - public static BasicPattern transform(Function<Node, Node> nodeTransform, BasicPattern pattern) + public static BasicPattern transform(NodeTransform nodeTransform, BasicPattern pattern) { BasicPattern bgp2 = new BasicPattern() ; boolean changed = false ; @@ -67,7 +65,7 @@ public class NodeTransformLib } /** Do a node->node conversion of a QuadPattern - return original QuadPattern for "no change" */ - public static QuadPattern transform(Function<Node, Node> nodeTransform, QuadPattern pattern) + public static QuadPattern transform(NodeTransform nodeTransform, QuadPattern pattern) { QuadPattern qp2 = new QuadPattern() ; boolean changed = false ; @@ -84,7 +82,7 @@ public class NodeTransformLib } /** Do a node->node conversion of a Triple - return original Triple for "no change" */ - public static Triple transform(Function<Node, Node> nodeTransform, Triple triple) + public static Triple transform(NodeTransform nodeTransform, Triple triple) { boolean change = false ; Node s = triple.getSubject() ; @@ -104,7 +102,7 @@ public class NodeTransformLib } /** Do a node->node conversion of a Quad - return original Quad for "no change" */ - public static Quad transform(Function<Node, Node> nodeTransform, Quad quad) + public static Quad transform(NodeTransform nodeTransform, Quad quad) { boolean change = false ; Node s = quad.getSubject() ; @@ -126,7 +124,7 @@ public class NodeTransformLib return new Quad(g,s,p,o) ; } - public static Table transform(Table table, Function<Node, Node> transform) { + public static Table transform(Table table, NodeTransform transform) { // Non-streaming rewrite List<Var> vars = transformVars(transform, table.getVars()) ; Iterator<Binding> iter = table.rows() ; @@ -139,7 +137,7 @@ public class NodeTransformLib return new TableData(vars, newRows) ; } - public static Binding transform(Binding b, Function<Node, Node> transform) { + public static Binding transform(Binding b, NodeTransform transform) { BindingMap b2 = BindingFactory.create() ; List<Var> vars = Iter.toList(b.vars()) ; for ( Var v : vars ) { @@ -152,7 +150,7 @@ public class NodeTransformLib /** Do a node->node conversion of a List<Quad> - return original List<Quad> for "no change" */ - public static List<Quad> transformQuads(Function<Node, Node> nodeTransform, List<Quad> quads) + public static List<Quad> transformQuads(NodeTransform nodeTransform, List<Quad> quads) { List<Quad> x = new ArrayList<>() ; boolean changed = false ; @@ -169,7 +167,7 @@ public class NodeTransformLib } /** Do a node->node conversion of a VarExprList - return original VarExprList for "no change" */ - public static VarExprList transform(Function<Node, Node> nodeTransform, VarExprList varExprList) + public static VarExprList transform(NodeTransform nodeTransform, VarExprList varExprList) { VarExprList varExprList2 = new VarExprList() ; boolean changed = false ; @@ -188,7 +186,7 @@ public class NodeTransformLib return varExprList2 ; } - public static List<Var> transformVars(Function<Node, Node> nodeTransform, List<Var> varList) + public static List<Var> transformVars(NodeTransform nodeTransform, List<Var> varList) { List<Var> varList2 = new ArrayList<>(varList.size()) ; boolean changed = false ; @@ -204,7 +202,7 @@ public class NodeTransformLib return varList2 ; } - public static ExprList transform(Function<Node, Node> nodeTransform, ExprList exprList) + public static ExprList transform(NodeTransform nodeTransform, ExprList exprList) { ExprList exprList2 = new ExprList() ; boolean changed = false ; @@ -219,12 +217,12 @@ public class NodeTransformLib return exprList2 ; } - public static Expr transform(Function<Node, Node> nodeTransform, Expr expr) + public static Expr transform(NodeTransform nodeTransform, Expr expr) { return expr.applyNodeTransform(nodeTransform) ; } - public static List<SortCondition> transform(Function<Node, Node> nodeTransform, List<SortCondition> conditions) + public static List<SortCondition> transform(NodeTransform nodeTransform, List<SortCondition> conditions) { List<SortCondition> conditions2 = new ArrayList<>() ; boolean same = true ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java index d62d176..c6c60af 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java @@ -20,8 +20,6 @@ package org.apache.jena.sparql.graph; import java.util.ArrayList ; import java.util.List ; -import java.util.function.Function; - import org.apache.jena.graph.Node ; import org.apache.jena.graph.Triple ; import org.apache.jena.query.SortCondition ; @@ -51,8 +49,8 @@ class NodeTransformOp extends TransformCopy // Not: // Conditional (no expression) - private final Function<Node, Node> transform ; - NodeTransformOp(Function<Node, Node> transform) + private final NodeTransform transform ; + NodeTransformOp(NodeTransform transform) { this.transform = transform ; } http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java index 85ab116..0ae775f 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/NodeTransformBNodesToVariables.java @@ -20,14 +20,13 @@ package org.apache.jena.sparql.modify; import java.util.HashMap ; import java.util.Map ; -import java.util.function.Function; - import org.apache.jena.graph.Node ; import org.apache.jena.sparql.ARQConstants ; import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.core.VarAlloc ; +import org.apache.jena.sparql.graph.NodeTransform; -public class NodeTransformBNodesToVariables implements Function<Node, Node> +public class NodeTransformBNodesToVariables implements NodeTransform { private VarAlloc varAlloc = new VarAlloc(ARQConstants.allocVarBNodeToVar) ; private Map<Node, Var> mapping ; http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java index e97a796..46b2ef9 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java @@ -22,8 +22,6 @@ import static org.apache.jena.sparql.modify.TemplateLib.template ; import java.util.Iterator ; import java.util.List ; -import java.util.function.Function; - import org.apache.jena.atlas.data.BagFactory ; import org.apache.jena.atlas.data.DataBag ; import org.apache.jena.atlas.data.ThresholdPolicy ; @@ -51,6 +49,7 @@ import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.engine.binding.BindingRoot ; import org.apache.jena.sparql.graph.GraphFactory ; import org.apache.jena.sparql.graph.GraphOps ; +import org.apache.jena.sparql.graph.NodeTransform; import org.apache.jena.sparql.graph.NodeTransformLib ; import org.apache.jena.sparql.modify.request.* ; import org.apache.jena.sparql.syntax.Element ; @@ -474,7 +473,7 @@ public class UpdateEngineWorker implements UpdateVisitor protected static List<Quad> unused_convertBNodesToVariables(List<Quad> quads) { - Function<Node, Node> bnodesToVariables = new NodeTransformBNodesToVariables() ; + NodeTransform bnodesToVariables = new NodeTransformBNodesToVariables() ; return NodeTransformLib.transformQuads(bnodesToVariables, quads) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java index d0dfa27..34e793a 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultSetCompare.java @@ -174,9 +174,7 @@ public class ResultSetCompare if ( ! compareHeader(rs1, rs2) ) return false ; return equivalentByOrder(convert(rs1) , convert(rs2), new BNodeIso(NodeUtils.sameTerm)) ; } - - private static EqualityTest nodeExactTest = new EqualityTestExact() ; - + /** compare two result sets for exact equality equivalence. * Exact equalitymeans: * Each row in rs1 matches the same index row in rs2. @@ -192,7 +190,7 @@ public class ResultSetCompare { if ( ! compareHeader(rs1, rs2) ) return false ; - return equivalentByOrder(convert(rs1) , convert(rs2), nodeExactTest) ; + return equivalentByOrder(convert(rs1) , convert(rs2), new EqualityTest(){}) ; } /** Compare two result sets for bNode isomorphism equivalence. @@ -329,11 +327,4 @@ public class ResultSetCompare return false ; } } - - private static class EqualityTestExact implements EqualityTest { - @Override - public boolean equal(Node n1, Node n2) { - return Objects.equals(n1, n2) ; - } - } } http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java index b2a124a..09a4467 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/NodeUtils.java @@ -21,6 +21,7 @@ package org.apache.jena.sparql.util; import java.util.Collection ; import java.util.HashSet ; import java.util.Iterator ; +import java.util.Objects; import java.util.Set ; import org.apache.jena.atlas.lib.StrUtils ; @@ -44,7 +45,9 @@ import org.apache.jena.util.iterator.WrappedIterator ; public class NodeUtils { public interface EqualityTest { - boolean equal(Node n1, Node n2) ; + default boolean equal(Node n1, Node n2) { + return Objects.equals(n1, n2) ; + } } /** IRI to Node */ http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java index 1d4874a..72e77a2 100644 --- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java +++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java @@ -26,7 +26,6 @@ import java.io.InputStream ; import org.apache.jena.atlas.io.IO ; import org.apache.jena.atlas.junit.BaseTest ; import org.apache.jena.atlas.lib.StrUtils ; -import org.apache.jena.graph.Node ; import org.apache.jena.query.ResultSet ; import org.apache.jena.query.ResultSetFactory ; import org.apache.jena.query.ResultSetRewindable ; @@ -35,7 +34,6 @@ import org.apache.jena.sparql.resultset.ResultSetCompare ; import org.apache.jena.sparql.sse.Item ; import org.apache.jena.sparql.sse.SSE ; import org.apache.jena.sparql.sse.builders.BuilderResultSet ; -import org.apache.jena.sparql.util.NodeUtils.EqualityTest ; import org.junit.Test ; public class TestResultSetThrift extends BaseTest { @@ -64,15 +62,6 @@ public class TestResultSetThrift extends BaseTest { , ")" ) ; - - static class EqualityTestExact implements EqualityTest { - @Override - public boolean equal(Node n1, Node n2) { - return n1.equals(n2) ; - } - } - private static EqualityTest exactTest = new EqualityTestExact() ; - @Test public void resultSet_01() { test(rs0) ; } @Test public void resultSet_02() { http://git-wip-us.apache.org/repos/asf/jena/blob/0ef8184f/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java ---------------------------------------------------------------------- diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java index 6f262a5..6690d62 100644 --- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java +++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java @@ -18,8 +18,6 @@ package org.apache.jena.permissions.query.rewriter; import java.util.List; -import java.util.function.Function; - import org.apache.jena.graph.Node ; import org.apache.jena.graph.Triple ; import org.apache.jena.permissions.SecurityEvaluator; @@ -31,6 +29,7 @@ import org.apache.jena.sparql.core.Var ; import org.apache.jena.sparql.engine.binding.Binding ; import org.apache.jena.sparql.expr.* ; import org.apache.jena.sparql.function.FunctionEnv ; +import org.apache.jena.sparql.graph.NodeTransform; public class SecuredFunction extends ExprFunctionN { @@ -103,7 +102,7 @@ public class SecuredFunction extends ExprFunctionN } @Override - public Expr applyNodeTransform( Function<Node, Node> transform ) + public Expr applyNodeTransform( NodeTransform transform ) { return this; }
