com.codestreet.messageforge
Class RMoney

java.lang.Object
  extended bycom.codestreet.messageforge.RMoney
All Implemented Interfaces:
java.lang.Comparable

public class RMoney
extends java.lang.Object
implements java.lang.Comparable

Class to represent a Money field. The motivation and implementation of this data type comes from the book Patterns of Enterprise Application Architecture by Martin Fowler.

Author:
Jawaid Hakim.

Method Summary
 RMoney add(RMoney another)
          Addition operator.
 RMoney[] allocate(long[] ratios)
          Allocate amount in specified ratios.
 int compareTo(java.lang.Object another)
          Interface implementation.
 int compareTo(RMoney another)
          Interface implementation.
 RMoney divide(java.math.BigDecimal amount)
          Division operator.
 RMoney divide(java.math.BigDecimal amount, int roundingMode)
          Division operator.
 RMoney divide(double amount)
          Division operator.
 RMoney divide(RMoney amount)
          Division operator.
 boolean equals(java.lang.Object another)
          Override.
 boolean equals(RMoney another)
          Equals.
 java.math.BigDecimal getAmount()
          Get amount.
 java.util.Currency getCurrency()
          Get currency.
 int hashCode()
          Override.
 long longValue()
          Get amount as a long.
 RMoney multiply(java.math.BigDecimal amount)
          Multiplication operator.
 RMoney multiply(double amount)
          Multiplication operator.
 RMoney multiply(RMoney amount)
          Multiplication operator.
 RMoney subtract(RMoney another)
          Subtraction operator.
static RMoney valueOf(double amount, java.util.Currency currency)
          Factory.
static RMoney valueOf(long amount, java.util.Currency currency)
          Factory.
static RMoney valueOfDollar(double amount)
          Factory.
static RMoney valueOfDollar(long amount)
          Factory.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

valueOfDollar

public static RMoney valueOfDollar(long amount)
Factory.

Parameters:
amount - USD amount.
Returns:
New instance.

valueOfDollar

public static RMoney valueOfDollar(double amount)
Factory.

Parameters:
amount - USD amount.
Returns:
New instance.

valueOf

public static RMoney valueOf(long amount,
                             java.util.Currency currency)
Factory.

Parameters:
amount - Amount in specified currency.
currency - Currency.
Returns:
New instance.

valueOf

public static RMoney valueOf(double amount,
                             java.util.Currency currency)
Factory.

Parameters:
amount - Amount in specified currency.
currency - Currency.
Returns:
New instance.

getAmount

public java.math.BigDecimal getAmount()
Get amount.

Returns:
Amount.

longValue

public long longValue()
Get amount as a long.

Returns:
Amount as long.

getCurrency

public java.util.Currency getCurrency()
Get currency.

Returns:
Currency.

equals

public boolean equals(java.lang.Object another)
Override.

Returns:
Returns true if both currency and amount and equal.

equals

public boolean equals(RMoney another)
Equals.

Returns:
Returns true if both currency and amount and equal.

hashCode

public int hashCode()
Override.

Returns:
Hash code.

add

public RMoney add(RMoney another)
Addition operator.

Parameters:
another - Argument.
Returns:
New instance.

subtract

public RMoney subtract(RMoney another)
Subtraction operator.

Parameters:
another - Argument.
Returns:
New instance.

multiply

public RMoney multiply(double amount)
Multiplication operator.

Parameters:
amount - Amount to multiple by.
Returns:
New instance.

multiply

public RMoney multiply(RMoney amount)
Multiplication operator.

Parameters:
amount - Amount to multiple by.
Returns:
New instance.

multiply

public RMoney multiply(java.math.BigDecimal amount)
Multiplication operator.

Parameters:
amount - Amount to multiple by.
Returns:
New instance.

divide

public RMoney divide(double amount)
Division operator.

Parameters:
amount - Amount to divide by.
Returns:
New instance.

divide

public RMoney divide(java.math.BigDecimal amount)
Division operator.

Parameters:
amount - Amount to divide by.
Returns:
New instance.

divide

public RMoney divide(RMoney amount)
Division operator.

Parameters:
amount - Amount to divide by.
Returns:
New instance.

divide

public RMoney divide(java.math.BigDecimal amount,
                     int roundingMode)
Division operator.

Parameters:
amount - Amount to divide by.
roundingMode - Rounding mode. See BigDecimal for details.
Returns:
New instance.

compareTo

public int compareTo(java.lang.Object another)
Interface implementation.

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
another - Argument.
Returns:
Returns 0, 1, or -1 depending on whether the argument is equal to, greater than, or less than this.

compareTo

public int compareTo(RMoney another)
Interface implementation.

Parameters:
another - Argument.
Returns:
Returns 0, 1, or -1 depending on whether the argument is equal to, greater than, or less than this.

allocate

public RMoney[] allocate(long[] ratios)
Allocate amount in specified ratios.

Parameters:
ratios - Ratios. Sum of ratios must be greater than 0.
Returns:
Amount of this instance allocated in specified ratios.


Copyright © 2003-2006 CodeStreet. All Rights Reserved.