| 
					
				 | 
			
			
				@@ -30,7 +30,7 @@ import java.util.Vector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * <p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Represents a paginated <code>List</code>. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * JDK1.5 compatible paginated <code>List</code>. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * </p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  *  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * <p> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,11 +52,11 @@ import java.util.Vector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @author Ben Alex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @version $Id$ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class PaginatedList<E extends PersistableEntity> implements List<E> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //~ Instance fields ======================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     protected final transient Log logger = LogFactory.getLog(getClass()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<E> list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private int firstElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private int maxElements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private int size; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,23 +73,23 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param entity the entity to include (can be <code>null</code>, which 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      *        indicates an empty <code>PaginatedList</code> should be created) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public PaginatedList(PersistableEntity entity) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PaginatedList(E entity) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (entity == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.list = new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.list = new Vector<E>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.firstElement = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.maxElements = Integer.MAX_VALUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List list = new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            list.add(entity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.list = list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<E> myList = new Vector<E>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            myList.add(entity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.list = myList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.firstElement = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.maxElements = Integer.MAX_VALUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.size = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public PaginatedList(List list, int firstElement, int maxElements, int size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PaginatedList(List<E> list, int firstElement, int maxElements, int size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.list = list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.firstElement = firstElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.maxElements = maxElements; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -133,7 +133,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return (size() - 1) / getMaxElements(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setList(List list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setList(List<E> list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.list = list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,7 +142,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return this page of the results 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List getList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<E> getList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -196,7 +196,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#add(int, java.lang.Object) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void add(int arg0, Object arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void add(int arg0, E arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -211,7 +211,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.Collection#add(java.lang.Object) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean add(Object arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean add(E arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -226,7 +226,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.Collection#addAll(java.util.Collection) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean addAll(Collection arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean addAll(Collection<? extends E> arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,7 +242,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#addAll(int, java.util.Collection) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean addAll(int arg0, Collection arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean addAll(int arg0, Collection<? extends E> arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -283,7 +283,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.Collection#containsAll(java.util.Collection) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean containsAll(Collection arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean containsAll(Collection<?> arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -296,7 +296,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#get(int) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object get(int arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public E get(int arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return list.get(arg0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -315,7 +315,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Iterator iterator() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Iterator<E> iterator() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return new PaginatedListIterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -343,7 +343,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#listIterator() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public ListIterator listIterator() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ListIterator<E> listIterator() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -358,7 +358,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#listIterator(int) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public ListIterator listIterator(int arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ListIterator<E> listIterator(int arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -373,7 +373,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#remove(int) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object remove(int arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public E remove(int arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -418,7 +418,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.Collection#retainAll(java.util.Collection) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean retainAll(Collection arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean retainAll(Collection<?> arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -434,7 +434,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#set(int, java.lang.Object) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object set(int arg0, Object arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public E set(int arg0, E arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -459,7 +459,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @see java.util.List#subList(int, int) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List subList(int arg0, int arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<E> subList(int arg0, int arg1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -467,7 +467,7 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return list.toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Object[] toArray(Object[] arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public <T> T[] toArray(T[] arg0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (logger.isDebugEnabled()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.debug("List size when convert to array " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 + list.toArray().length); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -475,57 +475,61 @@ public class PaginatedList implements List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return list.toArray(arg0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //~ Inner Classes ========================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private class PaginatedListIterator implements Iterator { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private Iterator iterator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * @see java.util.Iterator#hasNext() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public boolean hasNext() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return i < size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * This method follows the rules of Iterator.next() except that it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * returns null when requesting an element that it's not in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * current page. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * @see java.util.Iterator#next() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public Object next() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (i == getFirstElement()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                iterator = getList().iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ((i >= getFirstElement()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && (i < (getFirstElement() + getMaxElements()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return iterator.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new NoSuchElementException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * Unsupported operation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * @throws UnsupportedOperationException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         * @see java.util.Iterator#remove() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public void remove() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private class PaginatedListIterator implements Iterator<E> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    //~ Instance fields ======================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    private Iterator<E> iterator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    private int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * @see java.util.Iterator#hasNext() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    public boolean hasNext() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        return i < size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * This method follows the rules of Iterator.next() except that it returns 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * null when requesting an element that it's not in the current page. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * @see java.util.Iterator#next() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    public E next() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        if (i == getFirstElement()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            iterator = getList().iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        if ((i >= getFirstElement()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            && (i < (getFirstElement() + getMaxElements()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            return iterator.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        if (hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            throw new NoSuchElementException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * Unsupported operation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * @throws UnsupportedOperationException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     * @see java.util.Iterator#remove() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    public void remove() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        throw new UnsupportedOperationException(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |