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.ListIterator;
19
20 /***
21 * Provides basic behaviour for decorating a list iterator with extra functionality.
22 * <p>
23 * All methods are forwarded to the decorated list iterator.
24 *
25 * @since Commons Collections 3.0
26 * @version $Revision: 1.1 $ $Date: 2005/05/03 22:45:38 $
27 *
28 * @author Rodney Waldhoff
29 * @author Stephen Colebourne
30 */
31 public class AbstractListIteratorDecorator<E> implements ListIterator<E> {
32
33 /*** The iterator being decorated */
34 protected final ListIterator<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 AbstractListIteratorDecorator(ListIterator<E> iterator) {
44 super();
45 if (iterator == null) {
46 throw new IllegalArgumentException("ListIterator 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 ListIterator<E> getListIterator() {
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 int nextIndex() {
70 return iterator.nextIndex();
71 }
72
73 public boolean hasPrevious() {
74 return iterator.hasPrevious();
75 }
76
77 public E previous() {
78 return iterator.previous();
79 }
80
81 public int previousIndex() {
82 return iterator.previousIndex();
83 }
84
85 public void remove() {
86 iterator.remove();
87 }
88
89 public void set(E obj) {
90 iterator.set(obj);
91 }
92
93 public void add(E obj) {
94 iterator.add(obj);
95 }
96
97 }