@Override public boolean equals(Object other) { if (other instanceof UnaryTupleOperator) { UnaryTupleOperator o = (UnaryTupleOperator)other; return arg.equals(o.getArg()); } return false; }
@Override public boolean equals(Object other) { if (other instanceof UnaryTupleOperator) { UnaryTupleOperator o = (UnaryTupleOperator)other; return arg.equals(o.getArg()); } return false; }
@Override public Set<String> getBindingNames() { return getArg().getBindingNames(); }
@Override protected void meetUnaryTupleOperator(UnaryTupleOperator node) { node.getArg().visit(this); }
@Override protected void meetUnaryTupleOperator(UnaryTupleOperator node) { node.getArg().visit(this); }
@Override public Set<String> getAssuredBindingNames() { return getArg().getAssuredBindingNames(); }
public Set<String> getAssuredBindingNames() { return getArg().getAssuredBindingNames(); }
public Set<String> getBindingNames() { return getArg().getBindingNames(); }
@Override protected void meetNode(final QueryModelNode node) { // By default, do not traverse assert node instanceof TupleExpr; if (node instanceof UnaryTupleOperator) { if (((UnaryTupleOperator) node).getArg().getBindingNames() .containsAll(filterVars)) { ((UnaryTupleOperator) node).getArg().visit(this); } } relocate(filter, (TupleExpr) node); }
@Override protected void meetUnaryTupleOperator(UnaryTupleOperator node) { assert former == node.getArg(); if (replacement == null) { removeNode(node); } else { node.setArg((TupleExpr)replacement); } }
@Override protected void meetUnaryTupleOperator(UnaryTupleOperator node) { assert former == node.getArg(); if (replacement == null) { removeNode(node); } else { node.setArg((TupleExpr)replacement); } }
@Override public void meetOther(QueryModelNode node) { if (node instanceof PeriodicQueryNode) { PeriodicQueryNode pNode = (PeriodicQueryNode) node; // do nothing if PeriodicQueryNode already positioned correctly if (pNode.equals(relocationParent.getArg())) { return; } // remove node from query pNode.replaceWith(pNode.getArg()); // set node' child to be relocationParent's child pNode.setArg(relocationParent.getArg()); // add node back into query below relocationParent relocationParent.replaceChildNode(relocationParent.getArg(), pNode); } } }
@Override public void meetUnaryTupleOperator(UnaryTupleOperator node) { if (typeRequirement != null) { if (node.getArg().getBindingNames().contains(varName)) { node.visitChildren(this); } else { meetNode(node); } } } }
@Override public UnaryTupleOperator clone() { UnaryTupleOperator clone = (UnaryTupleOperator)super.clone(); clone.setArg(getArg().clone()); return clone; } }
@Override public UnaryTupleOperator clone() { UnaryTupleOperator clone = (UnaryTupleOperator)super.clone(); clone.setArg(getArg().clone()); return clone; } }
private void addSourceExpressions(UnaryTupleOperator op, Collection<ProjectionElem> elems) { Extension ext = null; for (ProjectionElem projElem : elems) { ExtensionElem extElem = projElem.getSourceExpression(); if (extElem != null) { if (ext == null) { ext = new Extension(op.getArg()); op.setArg(ext); } ext.addElement(extElem); } } }
if (varsBefore.contains(name)) { UnaryTupleOperator proj = (UnaryTupleOperator)projElems.getParentNode(); Extension ext = new Extension(proj.getArg()); proj.setArg(ext); Var lostVar = new Var(name);
private TupleExpr visitHaving(Resource having) throws RDF4JException { UnaryTupleOperator op = (UnaryTupleOperator)group.getParentNode(); op.setArg(new Extension(group)); Iteration<? extends Resource, QueryEvaluationException> iter = TripleSources.listResources(having, store); while (iter.hasNext()) { Resource r = iter.next(); ValueExpr havingExpr = visitExpression(r); Filter filter = new Filter(op.getArg(), havingExpr); op.setArg(filter); op = filter; } return op; }