package formula;
import java.util.*;


/**
  An environment in which to evaluate a formula.
  The environment contains definitions of logical variables (true or false).
*/
public class Environment {
  // LogicalVariable --> Boolean
  Map<LogicalVariable,Boolean> logicalVariables;
  /**
    Constructs a new, empty environment.
  */
  public Environment() {
    logicalVariables = new TreeMap<LogicalVariable,Boolean>();
  }
  
  /**
    Binds a logical variable to a boolean value.
    @param _variable The logical variable.
    @param _value    Its boolean value.
  */
  public void bind(LogicalVariable _variable, boolean _value) {
    logicalVariables.put(_variable, Boolean.valueOf(_value));
  }
  
  /**
    Get the binding of a logical variable.
    @param _variable The logical variable
    @return The domain constant the variable is bound to,
      or null if it is not bound.
  */
  public Boolean get(LogicalVariable _variable) {
    return (Boolean) logicalVariables.get(_variable);
  }
  
}
