package edu.uva.softwarecons.model.value;
import java.math.BigDecimal;
/**
* Falconlabs
*
* @author Santiago Carrillo
* Date: 3/13/14
*/
public class CurrencyValue
implements ArithmeticValue
{
private final BigDecimal value;
public CurrencyValue( BigDecimal value )
{
this.value = value;
}
@Override
public BigDecimal getValue()
{
return value;
}
@Override
public boolean equals( Object obj )
{
return ( (CurrencyValue) obj ).getValue().equals( value );
}
@Override
public Value add( Value value )
{
return new CurrencyValue( this.value.add( ( (CurrencyValue) value ).getValue() ) );
}
@Override
public Value subtract( Value value )
{
return new CurrencyValue( this.value.subtract( ( (CurrencyValue) value ).getValue() ) );
}
@Override
public Value divide( Value value )
{
return new CurrencyValue( this.value.divide( ( (CurrencyValue) value ).getValue() ) );
}
@Override
public Value multiply( Value value )
{
return new CurrencyValue( this.value.multiply( ( (CurrencyValue) value ).getValue() ) );
}
@Override
public boolean greater( Value value )
{
return this.value.compareTo( ( (CurrencyValue) value ).getValue() ) == 1;
}
@Override
public boolean greaterEqual( Value value )
{
return this.value.compareTo( ( (CurrencyValue) value ).getValue() ) == 1
|| this.value.compareTo( ( (CurrencyValue) value ).getValue() ) == 0;
}
@Override
public boolean less( Value value )
{
return this.value.compareTo( ( (CurrencyValue) value ).getValue() ) == -1;
}
@Override
public boolean lessEqual( Value value )
{
return this.value.compareTo( ( (CurrencyValue) value ).getValue() ) == -1
|| this.value.compareTo( ( (CurrencyValue) value ).getValue() ) == 0;
}
@Override
public String toString()
{
return String.valueOf( value );
}
}