it.amattioli.encapsulate.money
Class Money

Show UML class diagram
java.lang.Object
  extended by it.amattioli.encapsulate.money.Money
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Money>
Direct Known Subclasses:
Euro

public class Money
extends Object
implements Comparable<Money>, Serializable, Cloneable

Money rappresenta una quantità di denaro. Al costruttore di una money occorre passare sia la quantità che la divisa in cui questa è espressa. E' poi possibile aggiungere e sottrarre quantità di denaro espresse nella stessa divisa.

See Also:
Serialized Form

Constructor Summary
Money(BigDecimal value, Currency currency)
          Costruisce un'istanza con la quantità di denaro e la divisa indicate.
Money(long unscaled, Currency currency)
           
 
Method Summary
 Money add(Money addendo)
          Somma a questa una quantità di denaro.
 Money addPercent(BigDecimal p)
          Costruisce una nuova quantità di denaro sommando a questa la percentuale passata come parametro.
 Money[] allocate(int buckets)
           
 Money[] allocate(long[] ratios)
           
 Money[] allocate(Money[] ratios)
           
 Money clone()
           
 int compareTo(Money m)
          Confronta due Money.
 boolean equals(Object o)
          Due Money sono considerati uguali se hanno la stessa divisa e la stessa quantità di denaro.
 Money futureValue(BigDecimal rate, int periods)
           
 Currency getCurrency()
          Restituisce la divisa in cui è espressa la quantità di denaro.
 BigDecimal getValue()
          Restituisce la quantità di denaro.
 int hashCode()
           
 boolean isGreaterThan(Money m)
          Verifica se questa quantità di denaro è maggiore di un'altra passata come parametro.
 boolean isLessThan(Money m)
          Verifica se questa quantità di denaro è minore di un'altra passata come parametro.
 Money multiply(BigDecimal d)
          Costruisce una nuova qunatità di denaro data dal prodotto di questa per il BigDecimal passato come parametro.
 Money multiply(double d)
          Moltiplica questa qunatità di denaro per il double passato come parametro.
 Money multiply(int i)
           
static
<T extends Money>
T
multiply(T money, BigDecimal d)
           
static
<T extends Money>
T
multiply(T money, double d)
           
static
<T extends Money>
T
multiply(T money, int i)
           
 BigDecimal percentOf(Money other)
           
 BigDecimal percentOf(Money other, int scale)
          Calcola che percentuale è questa quantità di denaro rispetto a quella passata come parametro.
 Money presentValue(BigDecimal rate, int periods)
           
static Money propertySum(Collection<?> coll, String propertyName)
           
 Money simpleInterest(BigDecimal rate, int periods)
           
 Money subtract(Money v)
          Sottrae a questa una quantità di denaro.
static
<T extends Money>
T
subtract(T addendo1, T addendo2)
          Costruisce una nuova quantità di denaro ottenuta sottraendo il secondo parametro dal primo.
 Money subtractPercent(BigDecimal p)
          Costruisce una nuova quantità di denaro sottraendo a questa la percentuale passata come parametro.
static
<T extends Money>
T
sum(Collection<T> moneyColl)
           
static
<T extends Money>
T
sum(T... addendo)
          Costruisce una nuova quantità di denari data dalla somma degli addendi passati come parametri.
static Money sumProperty(Collection<?> coll, String propertyName)
          Deprecated. 
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Money

public Money(BigDecimal value,
             Currency currency)
Costruisce un'istanza con la quantità di denaro e la divisa indicate. Nessuno dei due parametri può essere null. La quantità passata verrà arrotondata (usando ROUND_HALF_UP) al numero di decimali previsto dalla divisa.

Parameters:
value - la quantità di denaro
currency - la divisa in cui la quantità di denaro è espressa
Throws:
NullPointerException - se almeno uno dei due parametri è null

Money

public Money(long unscaled,
             Currency currency)
Method Detail

getValue

public BigDecimal getValue()
Restituisce la quantità di denaro.

Returns:
la quantità di denaro

getCurrency

public Currency getCurrency()
Restituisce la divisa in cui è espressa la quantità di denaro.


add

public Money add(Money addendo)
          throws IncompatibleCurrency
Somma a questa una quantità di denaro.

Parameters:
addendo - la quantità di denaro da sommare
Returns:
questa quantità di denaro
Throws:
IncompatibleCurrency - se la quantità di denaro da sommare è espressa in una divisa diversa da quella di questa istanza

sum

public static <T extends Money> T sum(T... addendo)
                           throws IncompatibleCurrency
Costruisce una nuova quantità di denari data dalla somma degli addendi passati come parametri.

Parameters:
addendo - le quantità di denaro da sommare
Returns:
Throws:
IncompatibleCurrency - se le due quantità di denaro sono espresse in divise diverse tra loro

sum

public static <T extends Money> T sum(Collection<T> moneyColl)
                           throws IncompatibleCurrency
Throws:
IncompatibleCurrency

sumProperty

@Deprecated
public static Money sumProperty(Collection<?> coll,
                                           String propertyName)
                         throws IncompatibleCurrency,
                                IllegalAccessException,
                                InvocationTargetException,
                                NoSuchMethodException
Deprecated. 

Throws:
IncompatibleCurrency
IllegalAccessException
InvocationTargetException
NoSuchMethodException

propertySum

public static Money propertySum(Collection<?> coll,
                                String propertyName)

subtract

public Money subtract(Money v)
               throws IncompatibleCurrency
Sottrae a questa una quantità di denaro.

Parameters:
v - la quantità di denaro da sottrarre
Throws:
IncompatibleCurrency - se la quantità di denaro da sottrarre è espressa in una divisa diversa da quella di questa istanza

subtract

public static <T extends Money> T subtract(T addendo1,
                                           T addendo2)
                                throws IncompatibleCurrency
Costruisce una nuova quantità di denaro ottenuta sottraendo il secondo parametro dal primo.

Parameters:
addendo1 -
addendo2 -
Returns:
Throws:
IncompatibleCurrency

multiply

public Money multiply(double d)
Moltiplica questa qunatità di denaro per il double passato come parametro. Il risultato verrà approssimato in modo da rispettare il numero di decimali previsto per la divisa.

Parameters:
d - il numero per il quale moltiplicare la quantità di denaro
Returns:
questa quantità di denaro

multiply

public Money multiply(BigDecimal d)
Costruisce una nuova qunatità di denaro data dal prodotto di questa per il BigDecimal passato come parametro. Il risultato verrà approssimato in modo da rispettare il numero di decimali previsto per la divisa.

Parameters:
d - il numero per il quale moltiplicare la quantità di denaro

multiply

public Money multiply(int i)

multiply

public static <T extends Money> T multiply(T money,
                                           int i)

multiply

public static <T extends Money> T multiply(T money,
                                           double d)

multiply

public static <T extends Money> T multiply(T money,
                                           BigDecimal d)

addPercent

public Money addPercent(BigDecimal p)
Costruisce una nuova quantità di denaro sommando a questa la percentuale passata come parametro. Il risultato verrà approssimato in modo da rispettare il numero di decimali previsto per la divisa.

Parameters:
p - la percentuale da sommare a questa quantità di denaro.

subtractPercent

public Money subtractPercent(BigDecimal p)
Costruisce una nuova quantità di denaro sottraendo a questa la percentuale passata come parametro. Il risultato verrà approssimato in modo da rispettare il numero di decimali previsto per la divisa.

Parameters:
p - la percentuale da sottrarre a questa quantità di denaro.

percentOf

public BigDecimal percentOf(Money other,
                            int scale)
Calcola che percentuale è questa quantità di denaro rispetto a quella passata come parametro.

Parameters:
other -
Returns:

percentOf

public BigDecimal percentOf(Money other)

equals

public boolean equals(Object o)
Due Money sono considerati uguali se hanno la stessa divisa e la stessa quantità di denaro.

Overrides:
equals in class Object

compareTo

public int compareTo(Money m)
Confronta due Money. Due Money sono confrontabili solamente se hanno la stessa divisa. Per il confronto viene utilizzato il metodo compareTo della classe BigDecimal ma non dovrebbero esserci i noti problemi con la discrepanaza tra compareTo ed equal, perchè due Money con la stessa divisa hanno sempre lo stesso numero di cifre decimali.

Specified by:
compareTo in interface Comparable<Money>
Parameters:
m - il Money da confrontare con questa istanza
Returns:
il risultato del metodo compareTo applicato alle quantità di denaro
Throws:
ClassCastException - se i due Money non hanno la stessa divisa

isGreaterThan

public boolean isGreaterThan(Money m)
Verifica se questa quantità di denaro è maggiore di un'altra passata come parametro.

Parameters:
m - la quantità di denaro da confrontare
Returns:
true se questa quantità di denaro è maggiore di quella passata come parametro
Throws:
ClassCastException - se i due Money non hanno la stessa divisa

isLessThan

public boolean isLessThan(Money m)
Verifica se questa quantità di denaro è minore di un'altra passata come parametro.

Parameters:
m - la quantità di denaro da confrontare
Returns:
true se questa quantità di denaro è minore di quella passata come parametro
Throws:
ClassCastException - se i due Money non hanno la stessa divisa

allocate

public Money[] allocate(int buckets)

allocate

public Money[] allocate(long[] ratios)

allocate

public Money[] allocate(Money[] ratios)

presentValue

public Money presentValue(BigDecimal rate,
                          int periods)

futureValue

public Money futureValue(BigDecimal rate,
                         int periods)

simpleInterest

public Money simpleInterest(BigDecimal rate,
                            int periods)

hashCode

public int hashCode()
Overrides:
hashCode in class Object

clone

public Money clone()
Overrides:
clone in class Object


Copyright © 2011. All Rights Reserved.