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/GenericListIteratorWrapper.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java
new file mode 100644
index 0000000000..dd5b2c9c6e
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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.ListIterator;
+
+import org.eclipse.jpt.utility.internal.StringTools;
+
+/**
+ * Wrap a list iterator on elements of any sub-type of E, converting it into a
+ * list iterator on elements of type E. This shouldn't be a problem since the
+ * resulting list iterator disables the methods that would put invalid elements
+ * in the iterator's backing list (i.e. #set(E) and #add(E)).
+ */
+public class GenericListIteratorWrapper<E>
+ implements ListIterator<E>
+{
+ private final ListIterator<? extends E> listIterator;
+
+ public GenericListIteratorWrapper(ListIterator<? extends E> listIterator) {
+ super();
+ this.listIterator = listIterator;
+ }
+
+ public boolean hasNext() {
+ return this.listIterator.hasNext();
+ }
+
+ public E next() {
+ return this.listIterator.next();
+ }
+
+ public int nextIndex() {
+ return this.listIterator.nextIndex();
+ }
+
+ public boolean hasPrevious() {
+ return this.listIterator.hasPrevious();
+ }
+
+ public E previous() {
+ return this.listIterator.previous();
+ }
+
+ public int previousIndex() {
+ return this.listIterator.previousIndex();
+ }
+
+ public void remove() {
+ this.listIterator.remove();
+ }
+
+ public void set(E e) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void add(E e) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String toString() {
+ return StringTools.buildToStringFor(this, this.listIterator);
+ }
+
+}

Back to the top