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 2015/09/16 17:26:27 UTC

[1/2] jena git commit: JENA-1028: OpDisjunction and Op1 operations.

Repository: jena
Updated Branches:
  refs/heads/master 96563de05 -> 53ceeaf4d


JENA-1028: OpDisjunction and Op1 operations.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/370f79db
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/370f79db
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/370f79db

Branch: refs/heads/master
Commit: 370f79db857f21da81e1ec62f744f758024a9c65
Parents: 8956f92
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Sep 16 10:15:57 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Sep 16 16:24:51 2015 +0100

----------------------------------------------------------------------
 .../jena/sparql/engine/main/VarFinder.java      | 71 +++++++++-----------
 1 file changed, 32 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/370f79db/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 e04de77..b6824a4 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
@@ -139,17 +139,17 @@ public class VarFinder
 
         @Override
         public void visit(OpJoin opJoin) {
-            joinAcc(opJoin.getLeft());
-            joinAcc(opJoin.getRight());
+            mergeVars(opJoin.getLeft());
+            mergeVars(opJoin.getRight());
         }
 
         @Override
         public void visit(OpSequence opSequence) {
             for ( Op op : opSequence.getElements() )
-                joinAcc(op);
+                mergeVars(op);
         }
 
-        private void joinAcc(Op op) {
+        private void mergeVars(Op op) {
             VarUsageVisitor usage = VarUsageVisitor.apply(op);
             defines.addAll(usage.defines);
             optDefines.addAll(usage.optDefines);
@@ -164,7 +164,7 @@ public class VarFinder
 
         @Override
         public void visit(OpMinus opMinus) {
-            joinAcc(opMinus.getLeft()) ;
+            mergeVars(opMinus.getLeft()) ;
             VarUsageVisitor usage = VarUsageVisitor.apply(opMinus.getRight());
             // Everything in the right side is really a filter.  
             filterMentions.addAll(usage.defines) ;
@@ -203,20 +203,13 @@ public class VarFinder
 
         @Override
         public void visit(OpUnion opUnion) {
-            VarUsageVisitor leftUsage = VarUsageVisitor.apply(opUnion.getLeft());
-            VarUsageVisitor rightUsage = VarUsageVisitor.apply(opUnion.getRight());
-
-            // defines = union(left.define, right.define) ??
-            // Can be both definite and optional (different sides).
-            defines.addAll(leftUsage.defines);
-            optDefines.addAll(leftUsage.optDefines);
-            filterMentions.addAll(leftUsage.filterMentions);
-            assignMentions.addAll(leftUsage.assignMentions);
-            
-            defines.addAll(rightUsage.defines);
-            optDefines.addAll(rightUsage.optDefines);
-            filterMentions.addAll(rightUsage.filterMentions);
-            assignMentions.addAll(rightUsage.assignMentions);
+            mergeVars(opUnion.getLeft());
+            mergeVars(opUnion.getRight());
+        }
+        
+        @Override
+        public void visit(OpDisjunction opDisjunction) {
+            opDisjunction.getElements().forEach(op->mergeVars(op));
         }
 
         @Override
@@ -278,47 +271,47 @@ public class VarFinder
             VarUtils.addVarNodes(defines, opPropFunc.getSubjectArgs().getArgList()) ;
             VarUtils.addVarNodes(defines, opPropFunc.getObjectArgs().getArgList()) ;
         }
-        
-        // Not implemented: with checking. 
 
-        private void no() { 
-            throw new NotImplemented() ;
-        }
+        // Ops that add nothing to variable scoping.
+        // Some can't appear without being inside a project anyway
+        // but we process generally where possible. 
         
         @Override
-        public void visit(OpProcedure opProc) { no() ; }
-
+        public void visit(OpReduced opReduced)      { mergeVars(opReduced.getSubOp()) ; }
 
         @Override
-        public void visit(OpService opService) { no(); }
+        public void visit(OpDistinct opDistinct)    { mergeVars(opDistinct.getSubOp()) ; }
 
         @Override
-        public void visit(OpDatasetNames dsNames) { no(); }
+        public void visit(OpSlice opSlice)          { mergeVars(opSlice.getSubOp()) ; }
 
         @Override
-        public void visit(OpLabel opLabel) { no(); }
+        public void visit(OpLabel opLabel)          { mergeVars(opLabel.getSubOp()) ; }
 
         @Override
-        public void visit(OpDiff opDiff) { no(); }
-
-        @Override
-        public void visit(OpDisjunction opDisjunction) { no(); }
+        public void visit(OpList opList)            { mergeVars(opList.getSubOp()) ; }
+        
+        // Not implemented: with checking. 
 
+        private void no() { 
+            throw new NotImplemented() ;
+        }
+        
         @Override
-        public void visit(OpList opList) { no(); }
+        public void visit(OpProcedure opProc) { no() ; }
 
         @Override
-        public void visit(OpOrder opOrder) { no(); }
+        public void visit(OpService opService) { no(); }
 
         @Override
-        public void visit(OpReduced opReduced) { no(); }
+        public void visit(OpDatasetNames dsNames) { no(); }
 
         @Override
-        public void visit(OpDistinct opDistinct) { no(); }
+        public void visit(OpDiff opDiff) { no(); }
 
         @Override
-        public void visit(OpSlice opSlice) { no(); }
-
+        public void visit(OpOrder opOrder) { no(); }
+        
         @Override
         public void visit(OpGroup opGroup) { no(); }
 


[2/2] jena git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/jena

Posted by an...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/jena


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/53ceeaf4
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/53ceeaf4
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/53ceeaf4

Branch: refs/heads/master
Commit: 53ceeaf4d5e4439311bc877c8285cf841e85b158
Parents: 370f79d 96563de
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Sep 16 16:26:08 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Sep 16 16:26:08 2015 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------