package net.iplantevin.ql.evaluation; /** * @author Ivan */ public class BoolVal extends Value { private final Boolean value; public BoolVal(Boolean value) { this.value = value; } public Boolean getValue() { return value; } @Override public Value and(Value argument) { return argument.boolAnd(this); } @Override public Value or(Value argument) { return argument.boolOr(this); } @Override public Value not() { return new BoolVal(!value); } @Override public Value boolAnd(BoolVal argument) { return new BoolVal(value && argument.getValue()); } @Override public Value boolOr(BoolVal argument) { return new BoolVal(value || argument.getValue()); } @Override public boolean equals(Object object) { if (object instanceof BoolVal) { Boolean castedValue = ((BoolVal) object).getValue(); return value.equals(castedValue); } else { return false; } } @Override public int hashCode() { return value.hashCode(); } }