You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/05/21 18:54:39 UTC
[19/23] jena git commit: Introduce Expr.NONE to replace
NodeValue.nvNothing.
Introduce Expr.NONE to replace NodeValue.nvNothing.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e4ef5bc7
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e4ef5bc7
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e4ef5bc7
Branch: refs/heads/master
Commit: e4ef5bc78c6e381a8428819c941bc60b14ffae3c
Parents: ee9aff0
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Apr 25 21:48:06 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat May 21 18:29:13 2016 +0100
----------------------------------------------------------------------
.../algebra/walker/ApplyTransformVisitor.java | 7 +-
.../algebra/walker/ElementWalker_New.java | 2 +-
.../sparql/algebra/walker/WalkerVisitor.java | 12 ++-
.../sparql/algebra/walker/WalkerVisitor0.java | 4 +-
.../java/org/apache/jena/sparql/expr/Expr.java | 1 +
.../org/apache/jena/sparql/expr/ExprNone.java | 18 +++--
.../apache/jena/sparql/expr/ExprTransform.java | 2 +
.../jena/sparql/expr/ExprTransformBase.java | 1 +
.../jena/sparql/expr/ExprTransformCopy.java | 81 +++++++++-----------
.../apache/jena/sparql/expr/ExprVisitor.java | 10 +--
.../org/apache/jena/sparql/expr/NodeValue.java | 4 +-
11 files changed, 74 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
index 43544c6..5020647 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
@@ -219,7 +219,7 @@ public class ApplyTransformVisitor implements OpVisitorByTypeAndExpr, ExprVisito
List<Expr> x = new ArrayList<>(N) ;
for ( int i = N-1 ; i >= 0 ; i-- ) {
Expr e2 = pop(exprStack) ;
- if ( e2 == Expr.NONE )
+ if ( e2 == Expr.NONE )
e2 = null ;
x.add(0, e2) ;
}
@@ -444,6 +444,11 @@ public class ApplyTransformVisitor implements OpVisitorByTypeAndExpr, ExprVisito
Expr e = eAgg.apply(exprTransform) ;
push(exprStack, e) ;
}
+
+ @Override
+ public void visit(ExprNone e) {
+ push(exprStack, e) ;
+ }
private <T> void push(Deque<T> stack, T value) {
if ( value == null )
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ElementWalker_New.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ElementWalker_New.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ElementWalker_New.java
index aab404a..b0fb10a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ElementWalker_New.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ElementWalker_New.java
@@ -168,7 +168,7 @@ public class ElementWalker_New {
Expr expr = func.getArg(i) ;
if ( expr == null )
// Put a dummy in, e.g. to keep the transform stack aligned.
- NodeValue.nvNothing.visit(this) ;
+ Expr.NONE.visit(this) ;
else
expr.visit(this) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor.java
index 451aedb..f4c9e43 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor.java
@@ -103,7 +103,7 @@ public class WalkerVisitor implements OpVisitorByTypeAndExpr, ExprVisitorFunctio
return ;
// retains order.
varExprList.forEachVarExpr((v,e) -> {
- Expr expr = (e!=null) ? e : Expr.NONE ;
+ Expr expr = (e!=null) ? e : Expr.NONE ;
walk(expr) ;
});
}
@@ -265,7 +265,7 @@ public class WalkerVisitor implements OpVisitorByTypeAndExpr, ExprVisitorFunctio
Expr expr = func.getArg(i) ;
if ( expr == null )
// Put a dummy in, e.g. to keep the transform stack aligned.
- NodeValue.nvNothing.visit(this) ;
+ Expr.NONE.visit(this) ;
else
expr.visit(this) ;
}
@@ -293,6 +293,12 @@ public class WalkerVisitor implements OpVisitorByTypeAndExpr, ExprVisitorFunctio
}
@Override
+ public void visit(ExprNone none) {
+ if ( exprVisitor != null )
+ none.visit(exprVisitor) ;
+ }
+
+ @Override
public void visit(ExprAggregator eAgg) {
// This is the assignment variable of the aggregation
// not a normal variable of an expression.
@@ -304,5 +310,3 @@ public class WalkerVisitor implements OpVisitorByTypeAndExpr, ExprVisitorFunctio
eAgg.visit(exprVisitor) ;
}
}
-
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor0.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor0.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor0.java
index 2b9dace..2acd7b6 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor0.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/WalkerVisitor0.java
@@ -265,7 +265,7 @@ public class WalkerVisitor0 implements OpVisitorByTypeAndExpr, ExprVisitorFuncti
Expr expr = func.getArg(i) ;
if ( expr == null )
// Put a dummy in, e.g. to keep the transform stack aligned.
- NodeValue.nvNothing.visit(this) ;
+ Expr.NONE.visit(this) ;
else
expr.visit(this) ;
}
@@ -304,5 +304,3 @@ public class WalkerVisitor0 implements OpVisitorByTypeAndExpr, ExprVisitorFuncti
eAgg.visit(exprVisitor) ;
}
}
-
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/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 90efc4f..8c24001 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
@@ -39,6 +39,7 @@ public interface Expr
public static final int CMP_UNEQUAL = -9 ;
public static final int CMP_INDETERMINATE = DatatypeConstants.INDETERMINATE ;
+
/** Test whether a Constraint is satisfied, given a set of bindings
* Includes error propagtion and Effective Boolean Value rules.
*
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNone.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNone.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNone.java
index a0e07f4..8012c9a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNone.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNone.java
@@ -26,16 +26,22 @@ import org.apache.jena.sparql.graph.NodeTransform ;
/** Marker, used in place of a null.
* This may be tested for using {@code ==} */
-/*package*/ class ExprNone extends ExprNode {
-
- /*paclage*/ static Expr NONE0 = new ExprNone() ;
+//public /*package*/ class ExprNone extends ExprVar { // extends ExprNode {
+//
+// /*package*/ static Expr NONE0 = new ExprNone() ;
+//
+// private ExprNone() { super("") ; }
+//}
+
+public class ExprNone extends ExprNode {
+ /*package*/ static Expr NONE0 = new ExprNone() ;
private ExprNone() {}
-
- @Override public void visit(ExprVisitor visitor) {}
+
+ @Override public void visit(ExprVisitor visitor) { visitor.visit(this); }
@Override public NodeValue eval(Binding binding, FunctionEnv env) {
- throw new InternalErrorException("Attempt to evalk ExprNone") ;
+ throw new InternalErrorException("Attempt to eval ExprNone") ;
}
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransform.java
----------------------------------------------------------------------
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 b8f0a2b..484d6c2 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
@@ -29,6 +29,8 @@ 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 Expr transform(ExprNone exprNone) ;
public Expr transform(ExprVar nv) ;
public Expr transform(ExprAggregator eAgg) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformBase.java
index b364327..b50c92b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformBase.java
@@ -29,6 +29,7 @@ public class ExprTransformBase implements ExprTransform
@Override public Expr transform(ExprFunctionN func, ExprList args) { return func ; }
@Override public Expr transform(ExprFunctionOp funcOp, ExprList args, Op opArg) { return funcOp ; }
@Override public Expr transform(NodeValue nv) { return nv ; }
+ @Override public Expr transform(ExprNone exprNone) { return exprNone ; }
@Override public Expr transform(ExprVar ev) { return ev ; }
@Override public Expr transform(ExprAggregator eAgg) { return eAgg ; }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformCopy.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformCopy.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformCopy.java
index 174be6a..06c5b38 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformCopy.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprTransformCopy.java
@@ -59,6 +59,10 @@ public class ExprTransformCopy implements ExprTransform
public Expr transform(NodeValue nv)
{ return xform(nv) ; }
+ @Override
+ public Expr transform(ExprNone exprNone)
+ { return xform(exprNone) ; }
+
@Override
public Expr transform(ExprVar exprVar)
{ return xform(exprVar) ; }
@@ -67,88 +71,75 @@ public class ExprTransformCopy implements ExprTransform
public Expr transform(ExprAggregator eAgg)
{ return xform(eAgg) ; }
- private Expr xform(ExprFunction0 func)
- {
+ private Expr xform(ExprFunction0 func) {
if ( !alwaysCopy )
return func ;
return func.copy() ;
}
- private Expr xform(ExprFunction1 func, Expr expr1)
- {
+ private Expr xform(ExprFunction1 func, Expr expr1) {
if ( !alwaysCopy && expr1 == func.getArg() )
return func ;
return func.copy(expr1) ;
}
-
- private Expr xform(ExprFunction2 func, Expr expr1, Expr expr2)
- {
- if ( !alwaysCopy &&
- expr1 == func.getArg1() &&
- expr2 == func.getArg2() )
+
+ private Expr xform(ExprFunction2 func, Expr expr1, Expr expr2) {
+ if ( !alwaysCopy && expr1 == func.getArg1() && expr2 == func.getArg2() )
return func ;
return func.copy(expr1, expr2) ;
}
-
- private Expr xform(ExprFunction3 func, Expr expr1, Expr expr2, Expr expr3)
- {
- if ( !alwaysCopy &&
- expr1 == func.getArg1() &&
- expr2 == func.getArg2() &&
- expr3 == func.getArg3() )
- return func ;
- return func.copy(expr1, expr2, expr3) ;
+
+ private Expr xform(ExprFunction3 func, Expr expr1, Expr expr2, Expr expr3) {
+ if ( !alwaysCopy && expr1 == func.getArg1() && expr2 == func.getArg2() && expr3 == func.getArg3() )
+ return func ;
+ return func.copy(expr1, expr2, expr3) ;
}
-
- private Expr xform(ExprFunctionN func, ExprList args)
- {
- if ( ! alwaysCopy && equals1(func.getArgs(), args.getList()) )
+
+ private Expr xform(ExprFunctionN func, ExprList args) {
+ if ( !alwaysCopy && equals1(func.getArgs(), args.getList()) )
return func ;
return func.copy(args) ;
}
-
- private boolean equals1(List<Expr> list1, List<Expr> list2)
- {
+
+ private boolean equals1(List<Expr> list1, List<Expr> list2) {
if ( list1 == null && list2 == null )
return true ;
if ( list1 == null )
return false ;
if ( list2 == null )
return false ;
-
+
if ( list1.size() != list2.size() )
return false ;
- for ( int i = 0 ; i < list1.size() ; i++ )
- {
+ for ( int i = 0 ; i < list1.size() ; i++ ) {
if ( list1.get(i) != list2.get(i) )
return false ;
}
return true ;
}
-
- private Expr xform(ExprFunctionOp funcOp, ExprList args, Op opArg)
- {
- if ( ! alwaysCopy && equals1(funcOp.getArgs(), args.getList()) && funcOp.getGraphPattern() == opArg )
+
+ private Expr xform(ExprFunctionOp funcOp, ExprList args, Op opArg) {
+ if ( !alwaysCopy && equals1(funcOp.getArgs(), args.getList()) && funcOp.getGraphPattern() == opArg )
return funcOp ;
return funcOp.copy(args, opArg) ;
}
-
- private Expr xform(NodeValue nv)
- {
+
+ private Expr xform(NodeValue nv) {
return nv ;
}
-
- private Expr xform(ExprVar exprVar)
- {
+
+ private Expr xform(ExprNone exprNone) {
+ return exprNone ;
+ }
+
+ private Expr xform(ExprVar exprVar) {
return exprVar ;
}
-
- private Expr xform(ExprAggregator eAgg)
- {
- if ( ! alwaysCopy )
+
+ private Expr xform(ExprAggregator eAgg) {
+ if ( !alwaysCopy )
return eAgg ;
-
+
return eAgg.copy(eAgg.getVar()) ;
}
-
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVisitor.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVisitor.java
index 796e3b4..5b7cea0 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVisitor.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprVisitor.java
@@ -18,6 +18,7 @@
package org.apache.jena.sparql.expr;
+import org.apache.jena.atlas.lib.InternalErrorException ;
public interface ExprVisitor
{
@@ -31,11 +32,6 @@ public interface ExprVisitor
void visit(NodeValue nv) ;
void visit(ExprVar nv) ;
void visit(ExprAggregator eAgg) ;
-
- /** @deprecated To be removed */
- @Deprecated
- default void startVisit() {}
- /** @deprecated To be removed */
- @Deprecated
- default void finishVisit() {}
+ //void visit(ExprNone exprNone) ;
+ default void visit(ExprNone exprNone) { throw new InternalErrorException("Visit Expr.NONE") ; }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e4ef5bc7/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 dd149d6..21fe672 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
@@ -138,7 +138,9 @@ public abstract class NodeValue extends ExprNode
// Use "==" for equality.
private static final String strForUnNode = "node value nothing" ;
- public static final NodeValue nvNothing = NodeValue.makeNode(NodeFactory.createBlankNode("node value nothing")) ;
+ /** @deprecated Use Expr.NONE */
+ @Deprecated
+ public static final NodeValue nvNothing = NodeValue.makeNode(NodeFactory.createBlankNode(strForUnNode)) ;
public static final String xsdNamespace = XSD+"#" ;