@Override public void meet(Var var) { if (!var.isAnonymous()) { varNames.add(var.getName()); } } }
@Override public void meet(Var var) { if (!var.isAnonymous()) { varNames.add(var.getName()); } } }
@Override public void meet(Var node) throws RuntimeException { // take only real vars, i.e. ignore blank nodes if (!node.hasValue() && !node.isAnonymous()) { res.add(node.getName()); } }
@Override public void meet(Var node) throws RuntimeException { // take only real vars, i.e. ignore blank nodes if (!node.hasValue() && !node.isAnonymous()) { res.add(node.getName()); } }
/** * Whether any of the possible consequents of this rule include anonymous * variables. Care should be taken when executing such rules, so that * repeated application doesn't continually produce new bnodes. * @return true if any subject, predicate, or object variable involved in a * consequent is flagged as anonymous. */ public boolean hasAnonymousConsequent() { for (StatementPattern sp : getConsequentPatterns()) { if (sp.getSubjectVar().isAnonymous() || sp.getPredicateVar().isAnonymous() || sp.getObjectVar().isAnonymous()) { return true; } } return false; } }
@Override public boolean equals(Object other) { if (other instanceof Var) { Var o = (Var)other; return name.equals(o.getName()) && nullEquals(value, o.getValue()) && anonymous == o.isAnonymous(); } return false; }
@Override public boolean equals(Object other) { if (other instanceof Var) { Var o = (Var)other; return name.equals(o.getName()) && nullEquals(value, o.getValue()) && anonymous == o.isAnonymous(); } return false; }
public ConstructProjection(Var subjectVar, Var predicateVar, Var objectVar) { Preconditions.checkNotNull(subjectVar); Preconditions.checkNotNull(predicateVar); Preconditions.checkNotNull(objectVar); subjName = VarNameUtils.createSimpleConstVarName(subjectVar); predName = VarNameUtils.createSimpleConstVarName(predicateVar); objName = VarNameUtils.createSimpleConstVarName(objectVar); Preconditions.checkNotNull(subjName); Preconditions.checkNotNull(predName); Preconditions.checkNotNull(objName); this.subjVar = subjectVar; this.predVar = predicateVar; this.objVar = objectVar; if ((subjVar.isAnonymous() || VarNameUtils.isAnonymous(subjName)) && subjectVar.getValue() == null) { subjValue = Optional.of(VF.createBNode("")); } else { subjValue = Optional.ofNullable(subjectVar.getValue()); } predValue = Optional.ofNullable(predicateVar.getValue()); objValue = Optional.ofNullable(objectVar.getValue()); }
/** * @inheritDoc */ @Override public void meet(Var theVar) throws Exception { if (theVar.isAnonymous() && !theVar.hasValue()) { mBuffer.append("?").append(BaseTupleExprRenderer.scrubVarName(theVar.getName())); } else if (theVar.hasValue()) { mBuffer.append(RenderUtils.getSPARQLQueryString(theVar.getValue())); } else { mBuffer.append("?").append(theVar.getName()); } }
/** * @inheritDoc */ @Override public void meet(Var theVar) throws Exception { if (theVar.isAnonymous() && !theVar.hasValue()) { mBuffer.append("?").append(BaseTupleExprRenderer.scrubVarName(theVar.getName())); } else if (theVar.hasValue()) { mBuffer.append(RenderUtils.getSPARQLQueryString(theVar.getValue())); } else { mBuffer.append("?").append(theVar.getName()); } }
/** * @inheritDoc */ @Override public void meet(Var theVar) throws Exception { if (theVar.isAnonymous() && !theVar.hasValue()) { mBuffer.append("?").append(BaseTupleExprRenderer.scrubVarName(theVar.getName())); } else if (theVar.hasValue()) { mBuffer.append(RenderUtils.getSPARQLQueryString(theVar.getValue())); } else { mBuffer.append("?").append(theVar.getName()); } }
/** * @inheritDoc */ @Override public void meet(Var theVar) throws Exception { if (theVar.isAnonymous() && !theVar.hasValue()) { mBuffer.append(BaseTupleExprRenderer.scrubVarName(theVar.getName().substring(1))); } else if (theVar.hasValue()) { mBuffer.append(RenderUtils.getSerqlQueryString(theVar.getValue())); } else { mBuffer.append(theVar.getName()); } }
/** * @inheritDoc */ @Override public void meet(Var theVar) throws Exception { if (theVar.isAnonymous() && !theVar.hasValue()) { mBuffer.append(BaseTupleExprRenderer.scrubVarName(theVar.getName().substring(1))); } else if (theVar.hasValue()) { mBuffer.append(RenderUtils.getSerqlQueryString(theVar.getValue())); } else { mBuffer.append(theVar.getName()); } }
/** * @inheritDoc */ @Override public void meet(Var theVar) throws Exception { if (theVar.isAnonymous() && !theVar.hasValue()) { mBuffer.append(BaseTupleExprRenderer.scrubVarName(theVar.getName().substring(1))); } else if (theVar.hasValue()) { mBuffer.append(RenderUtils.getSerqlQueryString(theVar.getValue())); } else { mBuffer.append(theVar.getName()); } }
@Override public void meet(Var var) { if (toBeReplaced.equals(var) || (toBeReplaced.isAnonymous() && var.isAnonymous() && (toBeReplaced.hasValue() && toBeReplaced.getValue().equals(var.getValue())))) { QueryModelNode parent = var.getParentNode(); parent.replaceChildNode(var, replacement); replacement.setParentNode(parent); } else if (replaceAnons && var.isAnonymous() && !var.hasValue()) { Var replacementVar = createAnonVar("anon-replace-" + var.getName() + index); QueryModelNode parent = var.getParentNode(); parent.replaceChildNode(var, replacementVar); replacementVar.setParentNode(parent); } }
@Override public void meet(Var var) { if (toBeReplaced.equals(var) || (toBeReplaced.isAnonymous() && var.isAnonymous() && (toBeReplaced.hasValue() && toBeReplaced.getValue().equals(var.getValue())))) { QueryModelNode parent = var.getParentNode(); parent.replaceChildNode(var, replacement); replacement.setParentNode(parent); } else if (replaceAnons && var.isAnonymous() && !var.hasValue()) { Var replacementVar = createAnonVar("anon-replace-" + var.getName() + index); QueryModelNode parent = var.getParentNode(); parent.replaceChildNode(var, replacementVar); replacementVar.setParentNode(parent); } }
@Override public TupleExpr visit(ASTDeleteClause node, Object data) throws VisitorException { TupleExpr result = (TupleExpr)data; // Collect construct 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 deleteExpr = graphPattern.buildTupleExpr(); // FIXME we should adapt the grammar so we can avoid doing this in // post-processing. VarCollector collector = new VarCollector(); deleteExpr.visit(collector); for (Var var : collector.getCollectedVars()) { if (var.isAnonymous() && !var.hasValue()) { // blank node in delete pattern, not allowed by SPARQL spec. throw new VisitorException("DELETE clause may not contain blank nodes"); } } graphPattern = parentGP; return deleteExpr; }
@Override public TupleExpr visit(ASTDeleteClause node, Object data) throws VisitorException { TupleExpr result = (TupleExpr)data; // Collect construct 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 deleteExpr = graphPattern.buildTupleExpr(); // FIXME we should adapt the grammar so we can avoid doing this in // post-processing. VarCollector collector = new VarCollector(); deleteExpr.visit(collector); for (Var var : collector.getCollectedVars()) { if (var.isAnonymous() && !var.hasValue()) { // blank node in delete pattern, not allowed by SPARQL spec. throw new VisitorException("DELETE clause may not contain blank nodes"); } } graphPattern = parentGP; return deleteExpr; }
@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; }