You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/08/10 18:43:56 UTC

svn commit: r1371768 - in /jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator: IteratorConcat.java IteratorCons.java

Author: andy
Date: Fri Aug 10 16:43:56 2012
New Revision: 1371768

URL: http://svn.apache.org/viewvc?rev=1371768&view=rev
Log:
Comment

Modified:
    jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorConcat.java
    jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorCons.java

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorConcat.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorConcat.java?rev=1371768&r1=1371767&r2=1371768&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorConcat.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorConcat.java Fri Aug 10 16:43:56 2012
@@ -24,17 +24,20 @@ import java.util.NoSuchElementException 
 
 import org.openjena.atlas.lib.DS ;
 
-
-
 /** Iterator of Iterators */
 
 public class IteratorConcat<T> implements Iterator<T>
 {
+    // No - we don't really need IteratorCons and IteratorConcat
+    // Historical.
+    
     private List<Iterator<T>> iterators = DS.list(); 
     int idx = -1 ;
     private Iterator<T> current = null ;
+    private Iterator<T> removeFrom = null ;
     boolean finished = false ;
     
+    /** @see IteratorCons */
     public static <T> Iterator<T> concat(Iterator<T> iter1, Iterator<T> iter2)
     {
         if (iter2 == null) return iter1 ;
@@ -72,12 +75,21 @@ public class IteratorConcat<T> implement
     @Override
     public T next()
     {
-        if ( ! hasNext() ) throw new NoSuchElementException() ; 
+        if ( ! hasNext() )
+            throw new NoSuchElementException() ; 
+        removeFrom = current ;
         return current.next();
     }
 
     @Override
     public void remove()
-    { throw new UnsupportedOperationException() ; }
+    { 
+        if ( null == removeFrom )
+            throw new IllegalStateException("no calls to next() since last call to remove()") ;
+        
+        removeFrom.remove() ;
+        removeFrom = null ;
+
+    }
 
 }

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorCons.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorCons.java?rev=1371768&r1=1371767&r2=1371768&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorCons.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorCons.java Fri Aug 10 16:43:56 2012
@@ -26,6 +26,9 @@ import java.util.NoSuchElementException 
 
 public class IteratorCons<T> implements Iterator<T>, Iterable<T>
 {
+    // No - we don't really need IteratorCons and IteratorConcat
+    // Historical.
+    
     private Iterator<? extends T> iter1 ;
     private Iterator<? extends T> iter2 ;
     private Iterator<? extends T> removeFrom ;