package uva.ql.ast.expressions.literals;
import java.util.Arrays;
import java.util.List;
import uva.ql.ast.CodeLines;
import uva.ql.ast.type.Type;
import uva.ql.ast.type.TypeBoolean;
import uva.ql.ast.value.BooleanValue;
import uva.ql.ast.visitor.ExpressionVisitor;
public class BooleanLiteral extends Literal{
private boolean value;
public BooleanLiteral(boolean _value, CodeLines _codeLines){
super(_codeLines);
this.value = _value;
}
@Override
public Boolean getValue() {
return this.value;
}
@Override
public BooleanValue evaluate() {
return new BooleanValue(this.value);
}
@Override
public List<Type> possibleReturnTypes() {
return Arrays.asList(new TypeBoolean());
}
@Override
public List<Type> acceptedTypes() {
return null;
}
@Override
public <T> T accept(ExpressionVisitor<T> visitor) {
return visitor.visitBooleanLiteral(this);
}
@Override
public CodeLines getLinesOfCode() {
return this.codeLines;
}
@Override
public String toString() {
return "BooleanLiteral(" + String.valueOf(this.value) + ")";
}
}