/**
*
*/
package eu.quanticol.carma.core.evaluators;
/**
* @author loreti
*
*/
public class CarmaInteger implements CarmaValue {
@Override
public int hashCode() {
return value;
}
@Override
public boolean equals(Object obj) {
if ((obj != null)&&(obj instanceof CarmaInteger)) {
return value == ((CarmaInteger) obj).value;
}
return false;
}
@Override
public String toString() {
return value+"";
}
private int value;
public CarmaInteger( int value ) {
this.value = value;
}
@Override
public boolean isBoolean() {
return false;
}
@Override
public boolean isInteger() {
return true;
}
@Override
public boolean isReal() {
return false;
}
@Override
public boolean isRecord() {
return false;
}
@Override
public boolean isEnum() {
return false;
}
@Override
public boolean isNone() {
return false;
}
@Override
public boolean getBooleanValue() {
throw new IllegalStateException();
}
@Override
public int getIntegerValue() {
return value;
}
@Override
public double getRealValue() {
throw new IllegalStateException();
}
@Override
public CarmaValue getFieldValue(String name) {
throw new IllegalStateException();
}
@Override
public boolean isTrue() {
throw new IllegalStateException();
}
@Override
public boolean isFalse() {
throw new IllegalStateException();
}
@Override
public CarmaValue and(CarmaValue v) {
return CarmaNone.NONE;
}
@Override
public CarmaValue or(CarmaValue v) {
return CarmaNone.NONE;
}
@Override
public CarmaValue not() {
return CarmaNone.NONE;
}
@Override
public CarmaValue plus(CarmaValue v) {
if (v.isInteger()) {
return new CarmaInteger(this.value+v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue minus(CarmaValue v) {
if (v.isInteger()) {
return new CarmaInteger(this.value-v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue mul(CarmaValue v) {
if (v.isInteger()) {
return new CarmaInteger(this.value*v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue div(CarmaValue v) {
if (v.isInteger()) {
return new CarmaInteger(this.value/v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue lessThan(CarmaValue v) {
if (v.isInteger()) {
return new CarmaBoolean(this.value<v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue lessOrEqualThan(CarmaValue v) {
if (v.isInteger()) {
return new CarmaBoolean(this.value<=v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue equalTo(CarmaValue v) {
if (v.isInteger()) {
return new CarmaBoolean(this.value==v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue notEqualTo(CarmaValue v) {
if (v.isInteger()) {
return new CarmaBoolean(this.value!=v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue greaterThan(CarmaValue v) {
if (v.isInteger()) {
return new CarmaBoolean(this.value>v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue greaterOrEqualThan(CarmaValue v) {
if (v.isInteger()) {
return new CarmaBoolean(this.value>=v.getIntegerValue());
}
return CarmaNone.NONE;
}
@Override
public CarmaValue abs() {
return new CarmaInteger(Math.abs(value));
}
@Override
public CarmaValue cos() {
return CarmaNone.NONE;
}
@Override
public CarmaValue acos() {
return CarmaNone.NONE;
}
@Override
public CarmaValue asin() {
return CarmaNone.NONE;
}
@Override
public CarmaValue atan() {
return CarmaNone.NONE;
}
@Override
public CarmaValue atan2(CarmaValue v) {
return CarmaNone.NONE;
}
@Override
public CarmaValue cbrt() {
return CarmaNone.NONE;
}
@Override
public CarmaValue ceil() {
return CarmaNone.NONE;
}
@Override
public CarmaValue exp() {
return CarmaNone.NONE;
}
@Override
public CarmaValue floor() {
return CarmaNone.NONE;
}
@Override
public CarmaValue log() {
return CarmaNone.NONE;
}
@Override
public CarmaValue log10() {
return CarmaNone.NONE;
}
@Override
public CarmaValue max(CarmaValue v) {
if (v.isInteger()) {
return (this.value>v.getIntegerValue()?this:v);
}
return CarmaNone.NONE;
}
@Override
public CarmaValue min(CarmaValue v) {
if (v.isInteger()) {
return (this.value<v.getIntegerValue()?this:v);
}
return CarmaNone.NONE;
}
@Override
public CarmaValue pow(CarmaValue v) {
return CarmaNone.NONE;
}
@Override
public CarmaValue sin() {
return CarmaNone.NONE;
}
@Override
public CarmaValue sqrt() {
return CarmaNone.NONE;
}
@Override
public CarmaValue tan() {
return CarmaNone.NONE;
}
}