package ql.ast.expression_value;
import ql.ast.visitor_elements.IValueElementVisitor;
/**
* @author orosu
*/
public class BooleanValue implements IValue
{
private final boolean _value;
public BooleanValue(boolean value)
{
this._value = value;
}
public BooleanValue and(BooleanValue rightValue)
{
return new BooleanValue(this.getValue() && rightValue.getValue());
}
public BooleanValue or(BooleanValue rightValue)
{
return new BooleanValue(this.getValue() || rightValue.getValue());
}
public BooleanValue not()
{
return new BooleanValue(!this.getValue());
}
@Override
public Boolean getValue()
{
return this._value;
}
@Override
public boolean equals(IValue value)
{
return value instanceof BooleanValue;
}
@Override
public boolean equalsValue(IValue value)
{
if (!this.equals(value) ||
((BooleanValue) value).getValue() != this.getValue())
{
return false;
}
return true;
}
@Override
public <T> T accept(IValueElementVisitor<T> visitor)
{
return visitor.visit(this);
}
}