Document Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/eeb4e4aa Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/eeb4e4aa Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/eeb4e4aa
Branch: refs/heads/master Commit: eeb4e4aa895134c5d3153dfb6690fbc6efa1f483 Parents: e87a8a3 Author: Andy Seaborne <[email protected]> Authored: Tue Sep 23 14:46:40 2014 +0100 Committer: Andy Seaborne <[email protected]> Committed: Tue Sep 23 14:46:40 2014 +0100 ---------------------------------------------------------------------- .../algebra/optimize/TransformMergeBGPs.java | 77 +++++++++----------- 1 file changed, 33 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/eeb4e4aa/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformMergeBGPs.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformMergeBGPs.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformMergeBGPs.java index e0193e1..1c6e0e1 100644 --- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformMergeBGPs.java +++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformMergeBGPs.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package com.hp.hpl.jena.sparql.algebra.optimize; +package com.hp.hpl.jena.sparql.algebra.optimize ; import java.util.List ; @@ -27,57 +27,51 @@ import com.hp.hpl.jena.sparql.algebra.op.OpJoin ; import com.hp.hpl.jena.sparql.algebra.op.OpSequence ; import com.hp.hpl.jena.sparql.core.BasicPattern ; -/** Merge adjacent BGPsTransformCollapseBGPs */ -public class TransformMergeBGPs extends TransformCopy -{ +/** Merge BGPs + * + * <li>(join BGP1 BGP2) => BGP + * <li>(sequence ...BGP1 BGP2 ...) => (sequence ...BGP ...) + */ +public class TransformMergeBGPs extends TransformCopy { @Override - public Op transform(OpJoin opJoin, Op left, Op right) - { + public Op transform(OpJoin opJoin, Op left, Op right) { BasicPattern p1 = asBGP(left) ; BasicPattern p2 = asBGP(right) ; - if ( p1 != null && p2 != null ) - { + if ( p1 != null && p2 != null ) { BasicPattern p = merge(p1, p2) ; return new OpBGP(p) ; } - + return super.transform(opJoin, left, right) ; } - + @Override - public Op transform(OpSequence opSequence, List<Op> elts) - { + public Op transform(OpSequence opSequence, List<Op> elts) { // First check whether we need to do anything at all. // Check for two BGPs. boolean xform = false ; boolean previousBGP = false ; - for ( Op op1 : elts ) - { - BasicPattern p1 = asBGP( op1 ); - if ( previousBGP && p1 != null ) - { - xform = true; - break; + for ( Op op1 : elts ) { + BasicPattern p1 = asBGP(op1) ; + if ( previousBGP && p1 != null ) { + xform = true ; + break ; } - previousBGP = ( p1 != null ); + previousBGP = (p1 != null) ; } - - if ( ! xform ) - // Nothing to do here. - return super.transform(opSequence, elts) ; - - - + + if ( !xform ) + // Nothing to do here. + return super.transform(opSequence, elts) ; + OpSequence seq2 = OpSequence.create() ; - for ( int i = 0 ; i < elts.size() ; i++ ) - { + for ( int i = 0 ; i < elts.size() ; i++ ) { Op op = elts.get(i) ; BasicPattern p1 = asBGP(op) ; - if ( p1 == null ) - { + if ( p1 == null ) { // Do nothing seq2.add(op) ; continue ; // Outer loop. @@ -88,14 +82,12 @@ public class TransformMergeBGPs extends TransformCopy seq2.add(new OpBGP(pMerge)) ; // Merge any BGPs from here on ... // Re-gets the BGP that trigegrs this all. - for ( ; i < elts.size() ; i++ ) - { + for ( ; i < elts.size() ; i++ ) { // Look at next element. Op opNext = elts.get(i) ; BasicPattern p2 = asBGP(opNext) ; - if ( p2 == null ) - { + if ( p2 == null ) { seq2.add(opNext) ; break ; } @@ -108,16 +100,14 @@ public class TransformMergeBGPs extends TransformCopy return seq2.get(0) ; return seq2 ; } - - private static BasicPattern asBGP(Op op) - { + + private static BasicPattern asBGP(Op op) { if ( op instanceof OpBGP ) - return ((OpBGP)op).getPattern() ; + return ((OpBGP)op).getPattern() ; return null ; } - - private static BasicPattern merge(BasicPattern p1, BasicPattern p2) - { + + private static BasicPattern merge(BasicPattern p1, BasicPattern p2) { if ( p1 == null || p2 == null ) return null ; BasicPattern p = new BasicPattern() ; @@ -125,6 +115,5 @@ public class TransformMergeBGPs extends TransformCopy p.addAll(p2) ; return p ; } - -} +}
