public Var(String name) { setName(name); }
public Var(String name) { setName(name); }
public void meet(Var var) { if (!var.isConstant() && hMap.containsKey(var.getName())) { String val = hMap.get(var.getName()); if (VarNameUtils.isConstant(val)) { 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(final Var node) { final String oldName = node.getName(); if (rule.varMap.containsKey(oldName)) { node.setName(rule.varMap.get(oldName).getName()); } else { if (node.hasValue() || node.equals(SUBJ_VAR) || node.equals(PRED_VAR) || node.equals(OBJ_VAR) || node.equals(CON_VAR)) { return; } node.setName(UNDEFINED_VAR.getName()); } } /**
@Override public void meet(Var var) { if (!(var.getParentNode() instanceof NAryValueOperator)) { if (!var.isConstant() && hMap.containsKey(var.getName())) { String val = hMap.get(var.getName()); if (VarNameUtils.isConstant(val)) { var.replaceWith(new ValueConstant(valMap.get(val))); } else { var.setName(val); } } } }
@Override public void meetNAryValueOperator(NAryValueOperator node) { List<ValueExpr> oldValues = node.getArguments(); List<ValueExpr> newValues = Lists.newArrayList(); for (ValueExpr v : oldValues) { if (v instanceof Var) { Var var = (Var) v; if (!(var.isConstant() && hMap.containsKey(var.getName()))) { String val = hMap.get(var.getName()); if (VarNameUtils.isConstant(val)) { newValues.add(new ValueConstant(valMap.get(val))); } else { var.setName(val); newValues.add(var); } } } else { newValues.add(v); } } node.setArguments(newValues); }