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/03/15 17:19:00 UTC
[4/4] jena git commit: Add forEach.
Add forEach.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/4c143d06
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/4c143d06
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/4c143d06
Branch: refs/heads/master
Commit: 4c143d0627047568ce2c44b1fa02c08fbcf0137b
Parents: ceb0b8c
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Mar 15 15:19:20 2016 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Mar 15 15:57:22 2016 +0000
----------------------------------------------------------------------
.../apache/jena/sparql/algebra/OpAsQuery.java | 4 ++--
.../apache/jena/sparql/core/VarExprList.java | 20 +++++++++++++-------
.../jena/sparql/engine/main/VarFinder.java | 15 ++++++---------
.../jena/sparql/algebra/TestClassify.java | 5 ++++-
4 files changed, 25 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/4c143d06/jena-arq/src/main/java/org/apache/jena/sparql/algebra/OpAsQuery.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/OpAsQuery.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/OpAsQuery.java
index ebdeb9d..a7ce267 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/OpAsQuery.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/OpAsQuery.java
@@ -332,13 +332,13 @@ public class OpAsQuery {
private static void processExtends(List<OpExtend> ext, BiConsumer<Var, Expr> action) {
ext.forEach(extend->{
- extend.getVarExprList().getExprs().forEach(action) ;
+ extend.getVarExprList().forEach(action) ;
});
}
private static void processAssigns(List<OpAssign> assigns, BiConsumer<Var, Expr> action) {
assigns.forEach(assign->{
- assign.getVarExprList().getExprs().forEach(action) ;
+ assign.getVarExprList().forEach(action) ;
});
}
http://git-wip-us.apache.org/repos/asf/jena/blob/4c143d06/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
index 04583a7..9d5f47a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/VarExprList.java
@@ -18,11 +18,9 @@
package org.apache.jena.sparql.core;
-import java.util.ArrayList ;
-import java.util.HashMap ;
-import java.util.List ;
-import java.util.Map ;
-import java.util.Objects;
+import java.util.* ;
+import java.util.function.BiConsumer ;
+import java.util.function.Consumer ;
import org.apache.jena.graph.Node ;
import org.apache.jena.sparql.ARQInternalErrorException ;
@@ -61,9 +59,17 @@ public class VarExprList
add(var, expr) ;
}
- public List<Var> getVars() { return vars ; }
- public Map<Var, Expr> getExprs() { return exprs ; }
+ public List<Var> getVars() { return vars ; }
+ public Map<Var, Expr> getExprs() { return exprs ; }
+ public void forEachExpr(Consumer<Expr> action) {
+ exprs.values().forEach(action);
+ }
+
+ public void forEach(BiConsumer<Var, Expr> action) {
+ exprs.forEach(action);
+ }
+
public boolean contains(Var var) { return vars.contains(var) ; }
public boolean hasExpr(Var var) { return exprs.containsKey(var) ; }
http://git-wip-us.apache.org/repos/asf/jena/blob/4c143d06/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
index a65b73c..e77f859 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
@@ -26,8 +26,6 @@ import static org.apache.jena.sparql.util.VarUtils.addVarsFromTriplePath ;
import java.util.HashSet ;
import java.util.List ;
-import java.util.Map ;
-import java.util.Map.Entry ;
import java.util.Set ;
import org.apache.jena.sparql.algebra.Op ;
@@ -243,13 +241,12 @@ public class VarFinder
opExtend.getSubOp().visit(this);
processVarExprList(opExtend.getVarExprList());
}
-
+
private void processVarExprList(VarExprList varExprList) {
- Map<Var, Expr> map = varExprList.getExprs();
- for ( Entry<Var, Expr> e : map.entrySet() ) {
- defines.add(e.getKey());
- e.getValue().varsMentioned(assignMentions);
- }
+ varExprList.forEach((v,e)-> {
+ defines.add(v) ;
+ e.varsMentioned(assignMentions);
+ }) ;
}
@Override
@@ -317,7 +314,7 @@ public class VarFinder
public void visit(OpGroup opGroup) {
// Not subOp.
VarExprList varExprs = opGroup.getGroupVars() ;
- varExprs.getExprs().forEach((v,expr)->{
+ varExprs.forEach((v,expr)->{
addVar(defines, v) ;
// Not the expressions.
}) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/4c143d06/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
index 2bd6b0c..741500d 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
@@ -118,6 +118,9 @@ public class TestClassify extends BaseTest
{ classifyJ("{ ?x ?y ?z { LET(?A := ?z+2) } UNION { }}", false) ; }
@Test public void testClassify_Join_44()
+ { classifyJ("{ BIND(<x> AS ?typeX) { BIND(?typeX AS ?type) } }", false) ; }
+
+ @Test public void testClassify_Join_45()
{ classifyJ("{ BIND(<x> AS ?typeX) { BIND(?typeX AS ?type) ?s ?p ?o FILTER(?o=?type) } }", false) ; }
// Unsafe - deep MINUS
@@ -125,7 +128,7 @@ public class TestClassify extends BaseTest
@Test public void testClassify_Join_50()
{ classifyJ("{ ?x ?y ?z { ?x1 ?y1 ?z1 MINUS { ?a ?b ?c } } UNION {} }", false) ; }
- private void classifyJ(String pattern, boolean expected)
+ public static void classifyJ(String pattern, boolean expected)
{
String qs1 = "PREFIX : <http://example/>\n" ;
String qs = qs1+"SELECT * "+pattern;