01: import java.util.*;
02: 
03: /**
04:    A bundle of items that is again an item.
05: */
06: public class Bundle implements LineItem
07: {
08:    /**
09:       Constructs a bundle with no items.
10:    */
11:    public Bundle() { items = new ArrayList(); }
12: 
13:    /**
14:       Adds an item to the bundle.
15:       @param item the item to add
16:    */
17:    public void add(LineItem item) { items.add(item); }
18: 
19:    public double getPrice() 
20:    {
21:       double price = 0;
22:       for (int i = 0; i < items.size(); i++)
23:       {
24:          LineItem item = (LineItem) items.get(i);
25:          price += item.getPrice();
26:       }
27:       return price; 
28:    }
29: 
30:    public String toString()
31:    {
32:       String description = "Bundle: ";
33:       for (int i = 0; i < items.size(); i++)
34:       {
35:          if (i > 0) description += ", ";
36:          LineItem item = (LineItem) items.get(i);
37:          description += item.toString();
38:       }
39:       return description;
40:    } 
41: 
42:    private ArrayList items;
43: }