You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by tm...@apache.org on 2015/03/05 16:39:26 UTC

svn commit: r1664380 - /ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/ListIterable.java

Author: tmill
Date: Thu Mar  5 15:39:25 2015
New Revision: 1664380

URL: http://svn.apache.org/r1664380
Log:
Convenience class for iterating over UIMA lists.

Added:
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/ListIterable.java

Added: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/ListIterable.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/ListIterable.java?rev=1664380&view=auto
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/ListIterable.java (added)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/ListIterable.java Thu Mar  5 15:39:25 2015
@@ -0,0 +1,42 @@
+package org.apache.ctakes.core.util;
+
+import java.util.Iterator;
+
+import org.apache.uima.jcas.cas.FSList;
+import org.apache.uima.jcas.cas.NonEmptyFSList;
+
+public class ListIterable<T> implements Iterable<T> {
+
+  FSListIterator<T> iter = null;
+  
+  public ListIterable(FSList list){
+    iter = new FSListIterator<>(list);
+  }
+  
+  public Iterator<T> iterator() {
+    return iter;
+  }
+
+  
+}
+
+class FSListIterator<T> implements Iterator<T> {
+  FSList list;
+  public FSListIterator(FSList list){
+    this.list = list;
+  }
+  
+  public boolean hasNext() {
+    return (list instanceof NonEmptyFSList);
+  }
+  
+  public T next() {
+    T element = (T) ((NonEmptyFSList)list).getHead();
+    list = ((NonEmptyFSList)list).getTail();
+    return element;
+  }
+  
+  public void remove() {
+    // don't do anything
+  }
+}