Author: andy
Date: Tue Jul  9 13:48:56 2013
New Revision: 1501261

URL: http://svn.apache.org/r1501261
Log:
Update expander code.

Modified:
    
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java

Modified: 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java?rev=1501261&r1=1501260&r2=1501261&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java
 (original)
+++ 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java
 Tue Jul  9 13:48:56 2013
@@ -18,6 +18,8 @@
 
 package com.hp.hpl.jena.sparql.algebra.optimize;
 
+import java.util.List ;
+
 import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.sparql.algebra.Op ;
 import com.hp.hpl.jena.sparql.algebra.TransformCopy ;
@@ -26,16 +28,28 @@ import com.hp.hpl.jena.sparql.core.Basic
 import com.hp.hpl.jena.sparql.core.Quad ;
 import com.hp.hpl.jena.sparql.core.QuadPattern ;
 
-/** Expand BGPs to joins of triples. */ 
+/** Expand to joins of triples and quads. */ 
 public class TransformPattern2Join extends TransformCopy
 {
+    /*
+     * Get standard shaped trees?
+     * Alternative is hard flatteniing to (sequence of all the quads, triples) 
+     */
+    
     @Override
     public Op transform(OpBGP opBGP)                        { return 
expand(opBGP.getPattern()) ; }
     
     @Override
     public Op transform(OpQuadPattern quadPattern)          { return 
expand(quadPattern.getPattern()) ; }
 
-    public static Op expand(BasicPattern bgp)
+    @Override
+    public Op transform(OpSequence opSeq, List<Op> elts)    { return 
expand(opSeq, elts) ; }
+
+//    @Override
+//    public Op transform(OpJoin opJoin, Op left, Op right)
+//    { return super.transform(opJoin, left, right) ; }
+
+    private static Op expand(BasicPattern bgp)
     {
         if ( bgp.getList().isEmpty() )
             return OpTable.unit() ;
@@ -48,7 +62,7 @@ public class TransformPattern2Join exten
         return op ;
     }
     
-    public static Op expand(QuadPattern quads)
+    private static Op expand(QuadPattern quads)
     {
         if ( quads.getList().isEmpty() )
             return OpTable.unit() ;
@@ -61,8 +75,17 @@ public class TransformPattern2Join exten
         return op ;
     }
     
+    private static Op expand(OpSequence opSeq, List<Op> elts)
+    {
+        Op x = null ;
+        // shape choices.
+        for ( Op op : elts )
+            x = join(x, op) ;
+        return x ;
+    }
+
     private static Op join(Op left, Op right)
     {
       return OpJoin.createReduce(left, right) ;
-    }
+  }
 }


Reply via email to