1 package junit.samples.money; 2 3 /*** 4 * The common interface for simple Monies and MoneyBags 5 * 6 */ 7 public interface IMoney { 8 /*** 9 * Adds a money to this money. 10 */ 11 public abstract IMoney add(IMoney m); 12 /*** 13 * Adds a simple Money to this money. This is a helper method for 14 * implementing double dispatch 15 */ 16 public abstract IMoney addMoney(Money m); 17 /*** 18 * Adds a MoneyBag to this money. This is a helper method for 19 * implementing double dispatch 20 */ 21 public abstract IMoney addMoneyBag(MoneyBag s); 22 /*** 23 * Tests whether this money is zero 24 */ 25 public abstract boolean isZero(); 26 /*** 27 * Multiplies a money by the given factor. 28 */ 29 public abstract IMoney multiply(int factor); 30 /*** 31 * Negates this money. 32 */ 33 public abstract IMoney negate(); 34 /*** 35 * Subtracts a money from this money. 36 */ 37 public abstract IMoney subtract(IMoney m); 38 /*** 39 * Append this to a MoneyBag m. 40 */ 41 public abstract void appendTo(MoneyBag m); 42 }