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(" "); }
public static Var valueToVar(Value theValue) { Var aVar = new Var("var" + cnt++, theValue); aVar.setAnonymous(true); return aVar; } }
@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()); } } }
private Var createConstantVar(Value value) { Var var = new Var("-const-" + constantVarID++); var.setAnonymous(true); var.setValue(value); return var; }
@Override public void meet(Var var) { if (var.equals(oldVar)) { var.replaceWith(newVar.clone()); } }
@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); } }
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(Var var) { Var replacement = s.get(var); if (replacement == null) return; var.setName(replacement.getName()); var.setConstant(replacement.isConstant()); var.setValue(replacement.getValue()); }
@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 void meet(Var var) { if (var.isConstant()) { valMap.put(var.getName(),var.getValue()); } }
public void meet(Var var) { if (!var.isConstant() && hMap.containsKey(var.getName())) { String val = hMap.get(var.getName()); if (val.startsWith("-const-")) { var.setName(val); var.setValue(valMap.get(val)); var.setAnonymous(true); //TODO this might be a hack -- when are Vars not anonymous? } else { var.setName(val); } } }
@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 protected TupleExpr createTuplePattern(Var subjVar, Var predVar, Var objVar, String contextName, Resource... contexts) { AResource carriedOver = (AResource) subjVar.getValue(); String subjectName = carriedOver.getName(); setSubjectName(subjectName); Var var = new Var(subjectName, null); return super.createTuplePattern(var, predVar, objVar, contextName, contexts); }