1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.collections15.iterators;
17
18 import java.util.Iterator;
19
20 /***
21 * Provides basic behaviour for decorating an iterator with extra functionality.
22 * <p>
23 * All methods are forwarded to the decorated iterator.
24 *
25 * @since Commons Collections 3.0
26 * @version $Revision: 1.1 $ $Date: 2005/05/03 22:45:38 $
27 *
28 * @author James Strachan
29 * @author Stephen Colebourne
30 */
31 public class AbstractIteratorDecorator<E> implements Iterator<E> {
32
33 /*** The iterator being decorated */
34 protected final Iterator<E> iterator;
35
36
37 /***
38 * Constructor that decorates the specified iterator.
39 *
40 * @param iterator the iterator to decorate, must not be null
41 * @throws IllegalArgumentException if the collection is null
42 */
43 public AbstractIteratorDecorator(Iterator<E> iterator) {
44 super();
45 if (iterator == null) {
46 throw new IllegalArgumentException("Iterator must not be null");
47 }
48 this.iterator = iterator;
49 }
50
51 /***
52 * Gets the iterator being decorated.
53 *
54 * @return the decorated iterator
55 */
56 protected Iterator<E> getIterator() {
57 return iterator;
58 }
59
60
61 public boolean hasNext() {
62 return iterator.hasNext();
63 }
64
65 public E next() {
66 return iterator.next();
67 }
68
69 public void remove() {
70 iterator.remove();
71 }
72
73 }