01: /**
02: * ===========================================
03: * JFreeReport : a free Java reporting library
04: * ===========================================
05: *
06: * Project Info: http://reporting.pentaho.org/
07: *
08: * (C) Copyright 2001-2007, by Object Refinery Ltd, Pentaho Corporation and Contributors.
09: *
10: * This library is free software; you can redistribute it and/or modify it under the terms
11: * of the GNU Lesser General Public License as published by the Free Software Foundation;
12: * either version 2.1 of the License, or (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16: * See the GNU Lesser General Public License for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public License along with this
19: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20: * Boston, MA 02111-1307, USA.
21: *
22: * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
23: * in the United States and other countries.]
24: *
25: * ------------
26: * ReadOnlyIterator.java
27: * ------------
28: * (C) Copyright 2001-2007, by Object Refinery Ltd, Pentaho Corporation and Contributors.
29: */package org.jfree.report.util;
30:
31: import java.util.Iterator;
32:
33: /**
34: * A unmodifiable iterator wrapper.
35: *
36: * @author Thomas Morgner
37: */
38: public class ReadOnlyIterator implements Iterator {
39: /**
40: * The base iterator.
41: */
42: private final Iterator base;
43:
44: /**
45: * Creates a read-only iterator.
46: *
47: * @param base the base iterator.
48: */
49: public ReadOnlyIterator(final Iterator base) {
50: this .base = base;
51: }
52:
53: /**
54: * Returns <tt>true</tt> if the iteration has more elements. (In other words, returns
55: * <tt>true</tt> if <tt>next</tt> would return an element rather than throwing an
56: * exception.)
57: *
58: * @return <tt>true</tt> if the iterator has more elements.
59: */
60: public boolean hasNext() {
61: return base.hasNext();
62: }
63:
64: /**
65: * Returns the next element in the iteration.
66: *
67: * @return the next element in the iteration.
68: */
69: public Object next() {
70: return base.next();
71: }
72:
73: /**
74: * Removes from the underlying collection the last element returned by the iterator
75: * (optional operation). This method can be called only once per call to <tt>next</tt>.
76: * The behavior of an iterator is unspecified if the underlying collection is modified
77: * while the iteration is in progress in any way other than by calling this method.
78: *
79: * @throws UnsupportedOperationException if the <tt>remove</tt> operation is not
80: * supported by this Iterator.
81: * @throws IllegalStateException if the <tt>next</tt> method has not yet been
82: * called, or the <tt>remove</tt> method has
83: * already been called after the last call to the
84: * <tt>next</tt> method.
85: */
86: public void remove() {
87: throw new UnsupportedOperationException();
88: }
89: }
|