@Override public Op make(ItemList list) { BasicPattern triples = buildBGP(list) ; return new OpBGP(triples) ; } } ;
protected Op compileBasicPattern(BasicPattern pattern) { return new OpBGP(pattern) ; }
@Override public Op0 copy() { return new OpBGP(pattern) ; }
static private Op flush(BasicPattern bp, Op op) { if ( bp == null || bp.isEmpty() ) return op; OpBGP opBGP = new OpBGP(bp); op = OpSequence.create(op, opBGP); return op; }
/** Apply filter placement to a BGP */ public static Op transform(ExprList exprs, BasicPattern bgp) { Placement placement = placeBGP(exprs, bgp) ; Op op = ( placement == null ) ? new OpBGP(bgp) : placement.op ; if ( placement != null ) op = buildFilter(placement.unplaced, op) ; return op ; }
@Override public Op transform(OpBGP opBGP) { BasicPattern bgp = opBGP.getPattern(); bgp = substitute(bgp, binding); return new OpBGP(bgp); }
public static Op toOpGraphTriples(Node graphNode, BasicPattern bgp) { Op result = new OpBGP(bgp); result = Quad.defaultGraphNodeGenerated.equals(graphNode) ? result : new OpGraph(graphNode, result); return result; }
public static Op toOpGraphTriples(Node graphNode, BasicPattern bgp) { Op result = new OpBGP(bgp); result = Quad.defaultGraphNodeGenerated.equals(graphNode) ? result : new OpGraph(graphNode, result); return result; }
/** * Transforms BGPs with the reordering */ @Override public Op transform(OpBGP opBGP) { BasicPattern pattern = opBGP.getPattern(); if ( pattern.size() < 2 ) return opBGP ; BasicPattern pattern2 = reorder.reorder(pattern); return new OpBGP(pattern2); }
public final OpBGP asBGP() { if ( opBGP == null ) { BasicPattern bp = new BasicPattern() ; bp.add(getTriple()) ; opBGP = new OpBGP(bp) ; } return opBGP ; }
private static Op flush(BasicPattern pattern, Op op) { if ( pattern == null || pattern.isEmpty() ) { if ( op == null ) return OpTable.unit() ; return op ; } OpBGP opBGP = new OpBGP(pattern) ; return OpSequence.create(op, opBGP) ; }
@Override public Op transform(OpBGP op) { BasicPattern before = op.getPattern(); BasicPattern after = deduplicate(before); Op result = after.equals(before) ? op : new OpBGP(after); return result; }
@Override public void visit(OpBGP opBGP) { push(new OpBGP(rewrite(opBGP.getPattern()))); }
@Override public Op transform(OpBGP op) { BasicPattern before = op.getPattern(); BasicPattern after = deduplicate(before); Op result = after.equals(before) ? op : new OpBGP(after); return result; }
@Override public void visit(OpBGP opBGP) { push(new OpBGP(rewrite(opBGP.getPattern()))); }
@Override public Op transform(OpJoin opJoin, Op left, Op right) { BasicPattern p1 = asBGP(left) ; BasicPattern p2 = asBGP(right) ; if ( p1 != null && p2 != null ) { BasicPattern p = merge(p1, p2) ; return new OpBGP(p) ; } return super.transform(opJoin, left, right) ; }
@Override public Op transform(OpBGP opBGP) { BasicPattern bgp2 = NodeTransformLib.transform(transform, opBGP.getPattern()); if ( bgp2 == opBGP.getPattern() ) return super.transform(opBGP); return new OpBGP(bgp2); }
@Override public void visit(OpQuadPattern quadPattern) { BasicPattern pattern = quadPattern.getBasicPattern(); if(!Quad.isDefaultGraph(quadPattern.getGraphNode())) { OpGraph opGraph = new OpGraph(quadPattern.getGraphNode(), new OpBGP(pattern)); visit(opGraph); } else { currentGroup().addElement(process(pattern)) ; } //throw new ARQNotImplemented("OpQuadPattern") ; }
@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) ; }
protected QueryIterator execute(OpQuadPattern quadPattern, QueryIterator input) { // Convert to BGP forms to execute in this graph-centric engine. if (quadPattern.isDefaultGraph() && execCxt.getActiveGraph() == execCxt.getDataset().getDefaultGraph()) { // Note we tested that the containing graph was the dataset's // default graph. // Easy case. OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ; return execute(opBGP, input) ; } // Not default graph - (graph .... ) OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ; OpGraph op = new OpGraph(quadPattern.getGraphNode(), opBGP) ; return execute(op, input) ; }