package evaluator;
public class IntegerValue extends Value<Integer> {
public IntegerValue(int integerValue) {
super(integerValue);
}
public Value add(Value value) {
return value.addInt(this);
}
public Value substract(Value value) {
return value.substractInt(this);
}
public Value multiply(Value value) {
return value.multiplyInt(this);
}
public Value divide(Value value) {
return value.divideInt(this);
}
public Value equality(Value value) {
return value.equalityInt(this);
}
public Value greaterEqual(Value value) {
return value.greaterEqualInt(this);
}
public Value greater(Value value) {
return value.greaterInt(this);
}
public Value lessEqual(Value value) {
return value.lessEqualInt(this);
}
public Value less(Value value) {
return value.lessInt(this);
}
public Value notEqual(Value value) {
return value.notEqualInt(this);
}
public Value plus() {
return new IntegerValue(getValue());
}
public Value minus() {
return new IntegerValue(-getValue());
}
public Value addInt(IntegerValue value) {
return new IntegerValue(value.getValue() + getValue());
}
public Value substractInt(IntegerValue value) {
return new IntegerValue(value.getValue() - getValue());
}
public Value multiplyInt(IntegerValue value) {
return new IntegerValue(value.getValue() * getValue());
}
public Value divideInt(IntegerValue value) {
return new IntegerValue(value.getValue() / getValue());
}
public Value equalityInt(IntegerValue value) {
return new BooleanValue(value.getValue() == getValue());
}
public Value greaterEqualInt(IntegerValue value) {
return new BooleanValue(value.getValue() >= getValue());
}
public Value greaterInt(IntegerValue value) {
return new BooleanValue(value.getValue() > getValue());
}
public Value lessEqualInt(IntegerValue value) {
return new BooleanValue(value.getValue() <= getValue());
}
public Value lessInt(IntegerValue value) {
return new BooleanValue(value.getValue() < getValue());
}
public Value notEqualInt(IntegerValue value) {
return new BooleanValue(value.getValue() != getValue());
}
}