| package junit.samples.money; |
| |
| /** |
| * The common interface for simple Monies and MoneyBags |
| */ |
| public interface IMoney { |
| /** |
| * Adds a money to this money. |
| */ |
| IMoney add(IMoney m); |
| |
| /** |
| * Adds a simple Money to this money. This is a helper method for |
| * implementing double dispatch |
| */ |
| IMoney addMoney(Money m); |
| |
| /** |
| * Adds a MoneyBag to this money. This is a helper method for |
| * implementing double dispatch |
| */ |
| IMoney addMoneyBag(MoneyBag s); |
| |
| /** |
| * Tests whether this money is zero |
| */ |
| boolean isZero(); |
| |
| /** |
| * Multiplies a money by the given factor. |
| */ |
| IMoney multiply(int factor); |
| |
| /** |
| * Negates this money. |
| */ |
| IMoney negate(); |
| |
| /** |
| * Subtracts a money from this money. |
| */ |
| IMoney subtract(IMoney m); |
| |
| /** |
| * Append this to a MoneyBag m. |
| * appendTo() needs to be public because it is used |
| * polymorphically, but it should not be used by clients |
| * because it modifies the argument m. |
| */ |
| void appendTo(MoneyBag m); |
| } |