|
|||||||||
| Home >> All >> junit >> samples >> [ money overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
junit.samples.money
Class MoneyBag

java.lang.Objectjunit.samples.money.MoneyBag
- All Implemented Interfaces:
- IMoney
- class MoneyBag
- extends java.lang.Object
- implements IMoney
- extends java.lang.Object
A MoneyBag defers exchange rate conversions. For example adding 12 Swiss Francs to 14 US Dollars is represented as a bag containing the two Monies 12 CHF and 14 USD. Adding another 10 Swiss francs gives a bag with 22 CHF and 14 USD. Due to the deferred exchange rate conversion we can later value a MoneyBag with different exchange rates. A MoneyBag is represented as a list of Monies and provides different constructors to create a MoneyBag.
| Field Summary | |
private java.util.Vector |
fMonies
|
| Constructor Summary | |
(package private) |
MoneyBag()
|
| Method Summary | |
IMoney |
add(IMoney m)
Adds a money to this money. |
IMoney |
addMoney(Money m)
Adds a simple Money to this money. |
IMoney |
addMoneyBag(MoneyBag s)
Adds a MoneyBag to this money. |
(package private) void |
appendBag(MoneyBag aBag)
|
(package private) void |
appendMoney(Money aMoney)
|
void |
appendTo(MoneyBag m)
Append this to a MoneyBag m. |
private boolean |
contains(Money m)
|
(package private) static IMoney |
create(IMoney m1,
IMoney m2)
|
boolean |
equals(java.lang.Object anObject)
Determine whether this Object is semantically equal to another Object. |
private Money |
findMoney(java.lang.String currency)
|
int |
hashCode()
Get a value that represents this Object, as uniquely as possible within the confines of an int. |
boolean |
isZero()
Tests whether this money is zero |
IMoney |
multiply(int factor)
Multiplies a money by the given factor. |
IMoney |
negate()
Negates this money. |
private IMoney |
simplify()
|
IMoney |
subtract(IMoney m)
Subtracts a money from this money. |
java.lang.String |
toString()
Convert this Object to a human-readable String. |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
fMonies
private java.util.Vector fMonies
| Constructor Detail |
MoneyBag
MoneyBag()
| Method Detail |
create
static IMoney create(IMoney m1, IMoney m2)
add
public IMoney add(IMoney m)
- Description copied from interface:
IMoney - Adds a money to this money.
addMoney
public IMoney addMoney(Money m)
- Description copied from interface:
IMoney - Adds a simple Money to this money. This is a helper method for
implementing double dispatch
addMoneyBag
public IMoney addMoneyBag(MoneyBag s)
- Description copied from interface:
IMoney - Adds a MoneyBag to this money. This is a helper method for
implementing double dispatch
- Specified by:
addMoneyBagin interfaceIMoney
appendBag
void appendBag(MoneyBag aBag)
appendMoney
void appendMoney(Money aMoney)
equals
public boolean equals(java.lang.Object anObject)
- Description copied from class:
java.lang.Object - Determine whether this Object is semantically equal
to another Object.
There are some fairly strict requirements on this method which subclasses must follow:
- It must be transitive. If
a.equals(b)andb.equals(c), thena.equals(c)must be true as well. - It must be symmetric.
a.equals(b)andb.equals(a)must have the same value. - It must be reflexive.
a.equals(a)must always be true. - It must be consistent. Whichever value a.equals(b) returns on the first invocation must be the value returned on all later invocations.
a.equals(null)must be false.- It must be consistent with hashCode(). That is,
a.equals(b)must implya.hashCode() == b.hashCode(). The reverse is not true; two objects that are not equal may have the same hashcode, but that has the potential to harm hashing performance.
This is typically overridden to throw a java.lang.ClassCastException if the argument is not comparable to the class performing the comparison, but that is not a requirement. It is legal for
a.equals(b)to be true even thougha.getClass() != b.getClass(). Also, it is typical to never cause a java.lang.NullPointerException.In general, the Collections API (
java.util) use theequalsmethod rather than the==operator to compare objects. However, java.util.IdentityHashMap is an exception to this rule, for its own good reasons.The default implementation returns
this == o. - It must be transitive. If
findMoney
private Money findMoney(java.lang.String currency)
contains
private boolean contains(Money m)
hashCode
public int hashCode()
- Description copied from class:
java.lang.Object - Get a value that represents this Object, as uniquely as
possible within the confines of an int.
There are some requirements on this method which subclasses must follow:
- Semantic equality implies identical hashcodes. In other
words, if
a.equals(b)is true, thena.hashCode() == b.hashCode()must be as well. However, the reverse is not necessarily true, and two objects may have the same hashcode without being equal. - It must be consistent. Whichever value o.hashCode() returns on the first invocation must be the value returned on all later invocations as long as the object exists. Notice, however, that the result of hashCode may change between separate executions of a Virtual Machine, because it is not invoked on the same object.
Notice that since
hashCodeis used in java.util.Hashtable and other hashing classes, a poor implementation will degrade the performance of hashing (so don't blindly implement it as returning a constant!). Also, if calculating the hash is time-consuming, a class may consider caching the results.The default implementation returns
System.identityHashCode(this) - Semantic equality implies identical hashcodes. In other
words, if
isZero
public boolean isZero()
- Description copied from interface:
IMoney - Tests whether this money is zero
multiply
public IMoney multiply(int factor)
- Description copied from interface:
IMoney - Multiplies a money by the given factor.
negate
public IMoney negate()
- Description copied from interface:
IMoney - Negates this money.
simplify
private IMoney simplify()
subtract
public IMoney subtract(IMoney m)
- Description copied from interface:
IMoney - Subtracts a money from this money.
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object - Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string concatenation with this object. If the result is
null, string concatenation will instead use"null".The default implementation returns
getClass().getName() + "@" + Integer.toHexString(hashCode()).
appendTo
public void appendTo(MoneyBag m)
- Description copied from interface:
IMoney - Append this to a MoneyBag m.
|
|||||||||
| Home >> All >> junit >> samples >> [ money overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
junit.samples.money.MoneyBag