We now have a function in our Fridge
to return an iterator, but we still need to write this iterator. To keep things simple in this exercise, we will simply rely on the iterator of the Fridge's list.
Now, we will create this StorableIterator
class:
package fridgeManager; class StorableIterator { private var iterator : Iterator<Storable>; public function hasNext() : Bool { return iterator.hasNext(); } public function next() : Storable { return iterator.next(); } public function new(fridge : Fridge) { iterator = fridge.storedItems.iterator(); } }
As you can see it is pretty simple and relies on the fridge list's iterator.
Just remember that the hasNext
function returns a Bool
stating whether there's any item left to iterate, and the next function returns the next item.
In the constructor, we just store the fridge list's iterator.
Since iterator is a typedef, we do not have...