1 10 11 package org.mule.tck.testmodels.fruit; 12 13 import org.apache.commons.logging.Log; 14 import org.apache.commons.logging.LogFactory; 15 16 import java.util.HashMap ; 17 import java.util.Iterator ; 18 import java.util.Map ; 19 20 public class FruitBowl 21 { 22 25 private static Log logger = LogFactory.getLog(FruitBowl.class); 26 27 private Map bowl = new HashMap (); 28 29 public FruitBowl() 30 { 31 super(); 32 } 33 34 public FruitBowl(Fruit fruit[]) 35 { 36 for (int i = 0; i < fruit.length; i++) 37 { 38 bowl.put(fruit[i].getClass(), fruit[i]); 39 } 40 } 41 42 public FruitBowl(Apple apple, Banana banana) 43 { 44 bowl.put(Apple.class, apple); 45 bowl.put(Banana.class, banana); 46 } 47 48 public boolean hasApple() 49 { 50 return bowl.get(Apple.class) != null; 51 } 52 53 public boolean hasBanana() 54 { 55 return bowl.get(Banana.class) != null; 56 } 57 58 public Object consumeFruit(FruitLover fruitlover) 59 { 60 logger.debug("Got a fruit lover who says: " + fruitlover.speak()); 61 for (Iterator iter = bowl.values().iterator(); iter.hasNext();) 62 { 63 ((Fruit)iter.next()).bite(); 64 } 65 return fruitlover; 66 } 67 68 public void setFruit(Fruit[] fruit) 69 { 70 for (int i = 0; i < fruit.length; i++) 71 { 72 bowl.put(fruit[i].getClass(), fruit[i]); 73 } 74 } 75 76 public Apple getApple() 77 { 78 return (Apple)bowl.get(Apple.class); 79 } 80 81 public void setApple(Apple apple) 82 { 83 bowl.put(Apple.class, apple); 84 } 85 86 public Banana getBanana() 87 { 88 return (Banana)bowl.get(Banana.class); 89 } 90 91 public void setBanana(Banana banana) 92 { 93 bowl.put(Banana.class, banana); 94 } 95 } 96 | Popular Tags |