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;