public ServiceRoot(TupleExpr serviceArgs) { super(serviceArgs.clone()); this.originalServiceArgs = serviceArgs; } }
@Override public Modify clone() { TupleExpr deleteClone = deleteExpr != null ? deleteExpr.clone() : null; TupleExpr insertClone = insertExpr != null ? insertExpr.clone() : null; TupleExpr whereClone = whereExpr != null ? whereExpr.clone() : null; return new Modify(deleteClone, insertClone, whereClone); }
@Override public Modify clone() { TupleExpr deleteClone = deleteExpr != null ? deleteExpr.clone() : null; TupleExpr insertClone = insertExpr != null ? insertExpr.clone() : null; TupleExpr whereClone = whereExpr != null ? whereExpr.clone() : null; return new Modify(deleteClone, insertClone, whereClone); }
private static List<TupleExpr> getPlans(List<Map<Join, List<TupleExpr>>> reOrderings, TupleExpr te) { List<TupleExpr> queryPlans = Lists.newArrayList(); PermInserter pm = new PermInserter(); for (Map<Join, List<TupleExpr>> order : reOrderings) { TupleExpr clone = te.clone(); pm.setReOrderMap(order); clone.visit(pm); queryPlans.add(clone); } return queryPlans; }
public void visitDeleteWhere(Resource query) throws RDF4JException { TupleExpr whereExpr = visitWhere(query); updateRoot = new Modify(whereExpr, null, whereExpr.clone()); }
@Override public UnaryTupleOperator clone() { UnaryTupleOperator clone = (UnaryTupleOperator)super.clone(); clone.setArg(getArg().clone()); return clone; } }
@Override public SubQueryValueOperator clone() { SubQueryValueOperator clone = (SubQueryValueOperator)super.clone(); clone.setSubQuery(getSubQuery().clone()); return clone; } }
@Override public UnaryTupleOperator clone() { UnaryTupleOperator clone = (UnaryTupleOperator)super.clone(); clone.setArg(getArg().clone()); return clone; } }
@Override public SubQueryValueOperator clone() { SubQueryValueOperator clone = (SubQueryValueOperator)super.clone(); clone.setSubQuery(getSubQuery().clone()); return clone; } }
@Override public PeriodicQueryNode clone() { PeriodicQueryNode clone = (PeriodicQueryNode)super.clone(); clone.setArg(getArg().clone()); clone.periodDuration = periodDuration; clone.windowDuration = windowDuration; clone.unit = unit; clone.temporalVar = temporalVar; return clone; }
@Override public void meet(Filter filter) { if (filter.getCondition() instanceof Or && containsSameTerm(filter.getCondition())) { Or orNode = (Or)filter.getCondition(); TupleExpr filterArg = filter.getArg(); ValueExpr leftConstraint = orNode.getLeftArg(); ValueExpr rightConstraint = orNode.getRightArg(); // remove filter filter.replaceWith(filterArg); // Push UNION down below other filters to avoid cloning them TupleExpr node = findNotFilter(filterArg); Filter leftFilter = new Filter(node.clone(), leftConstraint); Filter rightFilter = new Filter(node.clone(), rightConstraint); Union union = new Union(leftFilter, rightFilter); node.replaceWith(union); filter.getParentNode().visit(this); } else { super.meet(filter); } }
@Override public void meet(Filter filter) { if (filter.getCondition() instanceof Or && containsSameTerm(filter.getCondition())) { Or orNode = (Or)filter.getCondition(); TupleExpr filterArg = filter.getArg(); ValueExpr leftConstraint = orNode.getLeftArg(); ValueExpr rightConstraint = orNode.getRightArg(); // remove filter filter.replaceWith(filterArg); // Push UNION down below other filters to avoid cloning them TupleExpr node = findNotFilter(filterArg); Filter leftFilter = new Filter(node.clone(), leftConstraint); Filter rightFilter = new Filter(node.clone(), rightConstraint); Union union = new Union(leftFilter, rightFilter); node.replaceWith(union); filter.getParentNode().visit(this); } else { super.meet(filter); } }
@Override public ArbitraryLengthPath clone() { ArbitraryLengthPath clone = (ArbitraryLengthPath)super.clone(); clone.setSubjectVar(getSubjectVar().clone()); clone.setPathExpression(getPathExpression().clone()); clone.setObjectVar(getObjectVar().clone()); if (getContextVar() != null) { clone.setContextVar(getContextVar().clone()); } return clone; } }
@Override public ArbitraryLengthPath clone() { ArbitraryLengthPath clone = (ArbitraryLengthPath)super.clone(); clone.setSubjectVar(getSubjectVar().clone()); clone.setPathExpression(getPathExpression().clone()); clone.setObjectVar(getObjectVar().clone()); if (getContextVar() != null) { clone.setContextVar(getContextVar().clone()); } return clone; } }
@Override public void meet(Order node) { for (OrderElem e : node.getElements()) { e.visit(this); } if (variablesProjected) { QueryModelNode parent = node.getParentNode(); if (projection == parent) { node.replaceWith(node.getArg().clone()); node.setArg(projection.clone()); Order replacement = node.clone(); projection.replaceWith(replacement); QueryModelNode distinct = replacement.getParentNode(); if (distinct instanceof Distinct) { distinct.replaceWith(new Reduced(replacement.clone())); } } } }
@Override public void meet(Order node) { for (OrderElem e : node.getElements()) { e.visit(this); } if (variablesProjected) { QueryModelNode parent = node.getParentNode(); if (projection == parent) { node.replaceWith(node.getArg().clone()); node.setArg(projection.clone()); Order replacement = node.clone(); projection.replaceWith(replacement); QueryModelNode distinct = replacement.getParentNode(); if (distinct instanceof Distinct) { distinct.replaceWith(new Reduced(replacement.clone())); } } } }
@Override public Modify visit(ASTDeleteWhere node, Object data) throws VisitorException { // Collect delete clause triples GraphPattern parentGP = graphPattern; graphPattern = new GraphPattern(); // inherit scope & context graphPattern.setStatementPatternScope(parentGP.getStatementPatternScope()); graphPattern.setContextVar(parentGP.getContextVar()); for (int i = 0; i < node.jjtGetNumChildren(); i++) { node.jjtGetChild(i).jjtAccept(this, data); } TupleExpr whereExpr = graphPattern.buildTupleExpr(); graphPattern = parentGP; TupleExpr deleteExpr = whereExpr.clone(); // FIXME we should adapt the grammar so we can avoid doing this // post-processing. VarCollector collector = new VarCollector(); deleteExpr.visit(collector); for (Var var : collector.getCollectedVars()) { if (var.isAnonymous() && !var.hasValue()) { throw new VisitorException("DELETE WHERE may not contain blank nodes"); } } Modify modify = new Modify(deleteExpr, null, whereExpr); return modify; }
@Override public Modify visit(ASTDeleteWhere node, Object data) throws VisitorException { // Collect delete clause triples GraphPattern parentGP = graphPattern; graphPattern = new GraphPattern(); // inherit scope & context graphPattern.setStatementPatternScope(parentGP.getStatementPatternScope()); graphPattern.setContextVar(parentGP.getContextVar()); for (int i = 0; i < node.jjtGetNumChildren(); i++) { node.jjtGetChild(i).jjtAccept(this, data); } TupleExpr whereExpr = graphPattern.buildTupleExpr(); graphPattern = parentGP; TupleExpr deleteExpr = whereExpr.clone(); // FIXME we should adapt the grammar so we can avoid doing this // post-processing. VarCollector collector = new VarCollector(); deleteExpr.visit(collector); for (Var var : collector.getCollectedVars()) { if (var.isAnonymous() && !var.hasValue()) { throw new VisitorException("DELETE WHERE may not contain blank nodes"); } } Modify modify = new Modify(deleteExpr, null, whereExpr); return modify; }