This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 555845e614ec35967708080219ab03ad234b5976 Author: Andy Seaborne <[email protected]> AuthorDate: Tue Mar 4 11:28:26 2025 +0000 Add ExprTransform.transform(Node) --- .../java/org/apache/jena/sparql/expr/ExprTransform.java | 15 +++++++++++++-- .../org/apache/jena/sparql/graph/NodeTransformExpr.java | 6 +++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransform.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransform.java index 484d6c2993..66d16c5ced 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransform.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransform.java @@ -18,7 +18,9 @@ package org.apache.jena.sparql.expr; +import org.apache.jena.graph.Node; import org.apache.jena.sparql.algebra.Op ; +import org.apache.jena.sparql.core.Var; public interface ExprTransform { @@ -29,8 +31,17 @@ public interface ExprTransform public Expr transform(ExprFunctionN func, ExprList args) ; public Expr transform(ExprFunctionOp funcOp, ExprList args, Op opArg) ; public Expr transform(NodeValue nv) ; - //default public Expr transform(ExprNone exprNone) { return exprNone ; } + + public default Expr transform(Node node) { + if ( Var.isVar(node) ) { + ExprVar exprVar = new ExprVar(node); + return transform(exprVar); + } + NodeValue nv = NodeValue.makeNode(node); + return transform(nv); + } + public Expr transform(ExprNone exprNone) ; - public Expr transform(ExprVar nv) ; + public Expr transform(ExprVar exprVar) ; public Expr transform(ExprAggregator eAgg) ; } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformExpr.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformExpr.java index 0ca88cdd14..81a110289b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformExpr.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformExpr.java @@ -50,13 +50,13 @@ public class NodeTransformExpr extends ExprTransformCopy { } /** Transform node then create a {@link ExprVar} or {@link NodeValue}. */ - private Expr transform(Node input) { + @Override + public Expr transform(Node input) { Node n = transform.apply(input); if ( n == null ) throw new InternalErrorException("NodeTransform creates a null"); if ( ! Var.isVar(n) ) return NodeValue.makeNode(n); - String name = Var.alloc(n).getVarName(); - return new ExprVar(n.getName()); + return new ExprVar(n); } }
