package ring.mobiles.backbone; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import ring.items.Item; public class ItemIterator implements Iterator<Item> { private int pos; private List<Item> items; public ItemIterator(Inventory inv) { pos = 0; initInventory(inv); } public ItemIterator(Equipment equipment) { pos = 0; initEquipment(equipment); } private void initEquipment(Equipment eq) { items = new ArrayList<Item>(eq.size()); for (Item item : eq.equipment.values()) { items.add(item); } } private void initInventory(Inventory inv) { items = new ArrayList<Item>(inv.size()); for (Item item : inv.getItems()) { items.add(item); } } public boolean hasNext() { return (pos < items.size()); } public Item next() { return items.get(pos++); } public void remove() { throw new UnsupportedOperationException("this iterator does not support removal"); } }