package data;
public class DoubleValue extends NumberValue {
public DoubleValue (Number nbValue) {
super (nbValue);
}
public DoubleValue (double dlValue) {
this (new Double (dlValue));
}
public void setValue (Number nbValue) {
super.setValue (new Double (nbValue.doubleValue()));
}
public void addAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Double (getValue().doubleValue() + nbV.doubleValue()));
}
public void subtractAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Double (getValue().doubleValue() - nbV.doubleValue()));
}
public void multiplyAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Double (getValue().doubleValue() * nbV.doubleValue()));
}
public void multiplyAccumulating (double dl) {
super.setValue (new Double (getValue().doubleValue() * dl));
}
public void multiplyAccumulating (float fl) {
super.setValue (new Double (getValue().doubleValue() * fl));
}
public void multiplyAccumulating (long l) {
super.setValue (new Double (getValue().doubleValue() * l));
}
public void multiplyAccumulating (int n) {
super.setValue (new Double (getValue().doubleValue() * n));
}
public void divideAccumulating (Value v) {
Number nbV = ((NumberValue) v).getValue();
super.setValue (new Double (getValue().doubleValue() / nbV.doubleValue()));
}
public Value add (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new DoubleValue (new Double (getValue().doubleValue() + nbV.doubleValue()));
}
public Value subtract (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new DoubleValue (new Double (getValue().doubleValue() - nbV.doubleValue()));
}
public Value multiply (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new DoubleValue (new Double (getValue().doubleValue() * nbV.doubleValue()));
}
public Value multiply (double dl) {
return new DoubleValue (new Double (getValue().doubleValue() * dl));
}
public Value multiply (float fl) {
return new DoubleValue (new Double (getValue().doubleValue() * fl));
}
public Value multiply (long l) {
return new DoubleValue (new Double (getValue().doubleValue() * l));
}
public Value multiply (int n) {
return new DoubleValue (new Double (getValue().doubleValue() * n));
}
public Value divide (Value v) {
Number nbV = ((NumberValue) v).getValue();
return new DoubleValue (new Double (getValue().doubleValue() / nbV.doubleValue()));
}
public int compareTo (Object o) {
Number nbO = ((NumberValue) o).getValue();
double dlDiff = (getValue().doubleValue() - nbO.doubleValue());
if (dlDiff > 0) {
return 1;
}
else if (dlDiff < 0) {
return -1;
}
else {
return 0;
}
}
public Object clone() {
return new DoubleValue (new Double (getValue().doubleValue()));
}
public boolean isAddZero() {
return (getValue().doubleValue() == 0);
}
public boolean isMulOne() {
return (getValue().doubleValue() == 1);
}
}