/** Transform an algebra expression so that default graph is union of the named graphs. */ public static Op unionDefaultGraph(Op op) { return TransformUnionQuery.transform(op) ; }
@Override public Op transform(OpBGP opBGP) { Node current = currentGraph.peek(); if ( current == Quad.defaultGraphNodeGenerated || current == Quad.unionGraph ) return union(opBGP) ; // // Turn into a quad pattern. // // Not perfect - see AlgebraQuad // return new OpQuadPattern(currentGraph.peek(), opBGP.getPattern()) ; // BGP over a named graph. // Leave as-is. return super.transform(opBGP) ; }
public static Op transform(Op op) { TransformUnionQuery t = new TransformUnionQuery() ; Op op2 = Transformer.transform(t, op, new Pusher(t.currentGraph), new Popper(t.currentGraph)) ; return op2 ; }
@Override public Op transform(OpQuadPattern quadPattern) { if ( quadPattern.isDefaultGraph() || quadPattern.isUnionGraph() ) { OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ; return union(opBGP) ; } // Leave alone. // if ( quadPattern.isExplicitDefaultGraph() ) {} return super.transform(quadPattern) ; }