package data;
public class IntegerValue extends NumberValue {
public IntegerValue (Number nbValue) {
super (nbValue);
}
public IntegerValue (int nValue) {
this (new Integer (nValue));
}
public void setValue (Number nbValue) {
super.setValue (new Integer (nbValue.intValue()));
}
public void addAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Integer (getValue().intValue() + nbV.intValue()));
}
public void subtractAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Integer (getValue().intValue() - nbV.intValue()));
}
public void multiplyAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Integer (getValue().intValue() * nbV.intValue()));
}
public void multiplyAccumulating (double dl) {
super.setValue (new Integer ((int) (getValue().intValue() * dl)));
}
public void multiplyAccumulating (float fl) {
super.setValue (new Integer ((int) (getValue().intValue() * fl)));
}
public void multiplyAccumulating (long l) {
super.setValue (new Integer ((int) (getValue().intValue() * l)));
}
public void multiplyAccumulating (int n) {
super.setValue (new Integer (getValue().intValue() * n));
}
public void divideAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Integer ((int) (getValue().intValue() / nbV.intValue())));
}
public Value add (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new IntegerValue (new Integer (getValue().intValue() + nbV.intValue()));
}
public Value subtract (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new IntegerValue (new Integer (getValue().intValue() - nbV.intValue()));
}
public Value multiply (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new IntegerValue (new Integer (getValue().intValue() * nbV.intValue()));
}
public Value multiply (double dl) {
return new IntegerValue (new Integer ((int) (getValue().intValue() * dl)));
}
public Value multiply (float fl) {
return new IntegerValue (new Integer ((int) (getValue().intValue() * fl)));
}
public Value multiply (long l) {
return new IntegerValue (new Integer ((int) (getValue().intValue() * l)));
}
public Value multiply (int n) {
return new IntegerValue (new Integer (getValue().intValue() * n));
}
public Value divide (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new IntegerValue (new Integer ((int) (getValue().intValue() / nbV.intValue())));
}
public int compareTo (Object o) {
Number nbO = ((NumberValue) o).getValue();
return (getValue().intValue() - nbO.intValue());
}
public Object clone() {
return new IntegerValue (new Integer (getValue().intValue()));
}
}