@Override public ImmutableSet<Variable> getKnownVariables() { return variableGenerator.getKnownVariables(); }
@Override public ImmutableSet<Variable> getKnownVariables() { return variableGenerator.getKnownVariables(); }
private static Variable generateNonConflictingVariable(Variable v, VariableGenerator variableGenerator, ImmutableSet<Variable> variables) { Variable proposedVariable = variableGenerator.generateNewVariableIfConflicting(v); if (proposedVariable.equals(v) // Makes sure that a "fresh" variable does not exists in the variable set || (!variables.contains(proposedVariable))) return proposedVariable; /* * Generates a "really fresh" variable */ ImmutableSet<Variable> knownVariables = Sets.union( variableGenerator.getKnownVariables(), variables) .immutableCopy(); VariableGenerator newVariableGenerator = new VariableGenerator(knownVariables); return newVariableGenerator.generateNewVariableFromVar(v); } }
private Variable generateNonConflictingVariable(Variable v, VariableGenerator variableGenerator, ImmutableSet<Variable> variables) { Variable proposedVariable = variableGenerator.generateNewVariableIfConflicting(v); if (proposedVariable.equals(v) // Makes sure that a "fresh" variable does not exists in the variable set || (!variables.contains(proposedVariable))) return proposedVariable; /* * Generates a "really fresh" variable */ ImmutableSet<Variable> knownVariables = Sets.union( variableGenerator.getKnownVariables(), variables) .immutableCopy(); VariableGenerator newVariableGenerator = coreUtilsFactory.createVariableGenerator(knownVariables); Variable newVariable = newVariableGenerator.generateNewVariableFromVar(v); variableGenerator.registerAdditionalVariables(ImmutableSet.of(newVariable)); return newVariable; } }
@Override public QueryTreeComponent createSnapshot() { return new DefaultQueryTreeComponent(tree.createSnapshot(), new VariableGenerator( variableGenerator.getKnownVariables())); }