@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()); } // TODO maybe stop tree traversal in nested SERVICE?
@Override public void meet(Var node) throws RuntimeException { if(!node.isAnonymous() && !node.isConstant()) { variables.add(node.getName()); } } }
public static ColumnVar createSubj(String alias, Var v, Resource resource) { ColumnVar var = new ColumnVar(); var.alias = alias; var.column = "subj"; var.name = v.getName(); var.anonymous = v.isAnonymous(); var.value = resource; var.types = ValueTypes.RESOURCE; if (resource instanceof RdbmsURI) { var.types = ValueTypes.URI; } return var; }
@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 static ColumnVar createCtx(String alias, Var v, Resource resource) { ColumnVar var = new ColumnVar(); var.alias = alias; var.column = "ctx"; if (v == null) { var.name = "__ctx" + Integer.toHexString(System.identityHashCode(var)); var.anonymous = true; var.hidden = true; } else { var.name = v.getName(); var.anonymous = v.isAnonymous(); } var.value = resource; var.types = ValueTypes.RESOURCE; if (resource instanceof RdbmsURI) { var.types = ValueTypes.URI; } return var; }
public static ColumnVar createObj(String alias, Var v, Value value) { ColumnVar var = new ColumnVar(); var.alias = alias; var.column = "obj"; var.name = v.getName(); var.anonymous = v.isAnonymous(); var.value = value; var.types = ValueTypes.UNKNOWN; if (value instanceof RdbmsURI) { var.types = ValueTypes.URI; } else if (value instanceof RdbmsResource) { var.types = ValueTypes.RESOURCE; } return var; }
private void appendFilter(StringBuilder builder, Var var) { if (var.hasValue() && !var.isAnonymous()) { builder.append("\nFILTER sameTerm("); appendVar(builder, var.getName()); builder.append(", "); writeValue(builder, var.getValue()); builder.append(")"); } }
private void appendFilter(StringBuilder sb, Var var) { if (var.hasValue() && !var.isAnonymous()) { sb.append("\nFILTER sameTerm("); appendVar(sb, var.getName()); sb.append(", "); writeValue(sb, var.getValue()); sb.append(")"); } }
public ConstructProjection(Var subjectVar, Var predicateVar, Var objectVar) { Preconditions.checkNotNull(subjectVar); Preconditions.checkNotNull(predicateVar); Preconditions.checkNotNull(objectVar); subjName = subjectVar.getName(); predName = predicateVar.getName(); objName = objectVar.getName(); Preconditions.checkNotNull(subjName); Preconditions.checkNotNull(predName); Preconditions.checkNotNull(objName); this.subjVar = subjectVar; this.predVar = predicateVar; this.objVar = objectVar; if((subjVar.isAnonymous() || subjName.startsWith("-anon-")) && subjectVar.getValue() == null) { subjValue = Optional.of(new BNodeImpl("")); } else { subjValue = Optional.ofNullable(subjectVar.getValue()); } predValue = Optional.ofNullable(predicateVar.getValue()); objValue = Optional.ofNullable(objectVar.getValue()); }
@Override public void meet(final SameTerm same) throws RuntimeException { if (same.getParentNode() instanceof Filter && same.getLeftArg() instanceof Var && same.getRightArg() instanceof Var) { final Var leftVar = (Var) same.getLeftArg(); final Var rightVar = (Var) same.getRightArg(); if (leftVar.isAnonymous() || rightVar.isAnonymous()) { if (!rightVar.isAnonymous()) { replacements.put(leftVar.getName(), rightVar.getName()); } else { replacements.put(rightVar.getName(), leftVar.getName()); } filtersToDrop.add((Filter) same.getParentNode()); } } }
private void appendVar(StringBuilder builder, Var var) { if (var.hasValue() && var.isAnonymous()) { Value value = var.getValue(); writeValue(builder, value); } else { String varName = var.getName(); appendVar(builder, varName); } builder.append(" "); }
/** * @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()); } }
private void appendVar(StringBuilder sb, Var var) { if (var.hasValue() && var.isAnonymous()) { Value value = var.getValue(); writeValue(sb, value); } else { String varName = var.getName(); appendVar(sb, varName); } sb.append(" "); }
/** * @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(final Var var) throws RuntimeException { if (!var.hasValue()) { final Var replacement = substitutions.get(var.getName()); if (replacement != null) { var.setName(replacement.getName()); var.setValue(replacement.getValue()); var.setAnonymous(replacement.isAnonymous()); } } }
@Override public void meet(final Var n) { final String name = n.getName(); if (n.getValue() != null) { emit(n.getValue()); } else if (!n.isAnonymous()) { emit("?" + n.getName()); } else { final ValueExpr expr = getVarExpr(this.root, n.getName()); if (expr != null) { emit(expr); } else if (getVarRefs(this.root, n.getName()) <= 1) { emit("[]"); } else { emit("?").emit(sanitize(name)); } } }
@Override public void meet(final Var n) { final String name = n.getName(); if (n.getValue() != null) { emit(n.getValue()); } else if (!n.isAnonymous()) { emit("?" + n.getName()); } else { final ValueExpr expr = getVarExpr(this.root, n.getName()); if (expr != null) { emit(expr); } else if (getVarRefs(this.root, n.getName()) <= 1) { emit("[]"); } else { emit("?").emit(sanitize(name)); } } }
@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; }