Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java
new file mode 100644
index 0000000000..c3b2591f44
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.utility.internal.iterators;
+
+import java.util.List;
+import java.util.ListIterator;
+import org.eclipse.jpt.utility.internal.StringTools;
+
+/**
+ * A <code>ReadOnlyListIterator</code> wraps another
+ * <code>ListIterator</code> and removes support for:
+ * #remove()
+ * #set(Object)
+ * #add(Object)
+ */
+public class ReadOnlyListIterator<E>
+ implements ListIterator<E>
+{
+ private final ListIterator<? extends E> nestedListIterator;
+
+
+ /**
+ * Construct an iterator on the specified list that
+ * disallows removes, sets, and adds.
+ */
+ public ReadOnlyListIterator(List<? extends E> list) {
+ this(list.listIterator());
+ }
+
+ /**
+ * Construct an iterator on the specified list iterator that
+ * disallows removes, sets, and adds.
+ */
+ public ReadOnlyListIterator(ListIterator<? extends E> nestedListIterator) {
+ super();
+ this.nestedListIterator = nestedListIterator;
+ }
+
+ public boolean hasNext() {
+ // delegate to the nested iterator
+ return this.nestedListIterator.hasNext();
+ }
+
+ public E next() {
+ // delegate to the nested iterator
+ return this.nestedListIterator.next();
+ }
+
+ public boolean hasPrevious() {
+ // delegate to the nested iterator
+ return this.nestedListIterator.hasPrevious();
+ }
+
+ public E previous() {
+ // delegate to the nested iterator
+ return this.nestedListIterator.previous();
+ }
+
+ public int nextIndex() {
+ // delegate to the nested iterator
+ return this.nestedListIterator.nextIndex();
+ }
+
+ public int previousIndex() {
+ // delegate to the nested iterator
+ return this.nestedListIterator.previousIndex();
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void set(E o) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void add(E o) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String toString() {
+ return StringTools.buildToStringFor(this, this.nestedListIterator);
+ }
+
+}

Back to the top