You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2015/12/29 17:00:42 UTC

svn commit: r1722169 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/

Author: schor
Date: Tue Dec 29 16:00:42 2015
New Revision: 1722169

URL: http://svn.apache.org/viewvc?rev=1722169&view=rev
Log:
[UIMA-4669] undo some changes to more specific types, to achieve better backwards compatibility

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java Tue Dec 29 16:00:42 2015
@@ -23,9 +23,8 @@ import java.util.NoSuchElementException;
 
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.internal.util.ObjHashSet;
-import org.apache.uima.jcas.cas.TOP;
 
-class FsIterator_bag<T extends TOP> extends FsIterator_singletype<T> {
+class FsIterator_bag<T extends FeatureStructure> extends FsIterator_singletype<T> {
 
   private ObjHashSet<T> bag;
   

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java Tue Dec 29 16:00:42 2015
@@ -27,12 +27,12 @@ import java.util.NoSuchElementException;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.jcas.cas.TOP;
 
-class FsIterator_set_sorted<T extends TOP> extends FsIterator_singletype<T> {
+class FsIterator_set_sorted<T extends FeatureStructure> extends FsIterator_singletype<T> {
 
   // We use TOP instead of T because the 
   // signature of getting a "matching" element limits the type to the declared type, and 
   // in UIMA we can use, say an Annotation instance as a moveTo arg, for a navSet of some subtype of Annotation.
-  final private NavigableSet<TOP> navSet;  // == fsSortIndex.getNavigableSet()
+  final private NavigableSet<FeatureStructure> navSet;  // == fsSortIndex.getNavigableSet()
   
   final private FsIndex_set_sorted<T> fsSetSortIndex;
   
@@ -52,10 +52,10 @@ class FsIterator_set_sorted<T extends TO
 
   private Iterator<T> iterator; 
   
-  FsIterator_set_sorted(FsIndex_set_sorted<T> fsSetSortIndex, int[] detectIllegalIndexUpdates, int typeCode, Comparator<TOP> comp) {
+  FsIterator_set_sorted(FsIndex_set_sorted<T> fsSetSortIndex, int[] detectIllegalIndexUpdates, int typeCode, Comparator<FeatureStructure> comp) {
     super(detectIllegalIndexUpdates, typeCode, comp);
     this.fsSetSortIndex = fsSetSortIndex;
-    this.navSet = fsSetSortIndex.getNavigableSet();
+    this.navSet = (NavigableSet<FeatureStructure>) fsSetSortIndex.getNavigableSet();
     iterator = (Iterator<T>) navSet.iterator();  // can't use fsSortIndex.iterator - that recursively calls this
   }
 

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java Tue Dec 29 16:00:42 2015
@@ -4,10 +4,10 @@ import java.util.Comparator;
 import java.util.ConcurrentModificationException;
 
 import org.apache.uima.cas.FSIterator;
+import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.jcas.cas.TOP;
 
-public abstract class FsIterator_singletype<T extends TOP>
+public abstract class FsIterator_singletype<T extends FeatureStructure>
                     implements LowLevelIterator<T>, 
                                Comparable<FsIterator_singletype<T>> {
 
@@ -27,9 +27,9 @@ public abstract class FsIterator_singlet
    * an instance of T and some other template type which can be a supertype of T, as long as
    * the keys are defined in both.
    */
-  final protected Comparator<TOP> comparator;
+  final protected Comparator<FeatureStructure> comparator;
 
-  public FsIterator_singletype(int[] detectConcurrentMods, int typeCode, Comparator<TOP> comparator){
+  public FsIterator_singletype(int[] detectConcurrentMods, int typeCode, Comparator<FeatureStructure> comparator){
     this.comparator = comparator;
     this.detectIllegalIndexUpdates = detectConcurrentMods;
     this.typeCode = typeCode;

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java Tue Dec 29 16:00:42 2015
@@ -26,7 +26,7 @@ import org.apache.uima.cas.FeatureStruct
 import org.apache.uima.jcas.cas.TOP;
 
 
-public abstract class FsIterator_subtypes<T extends TOP> implements LowLevelIterator<T> {
+public abstract class FsIterator_subtypes<T extends FeatureStructure> implements LowLevelIterator<T> {
 
   // The IICP
   final protected FsIndex_iicp<T> iicp;
@@ -52,11 +52,11 @@ public abstract class FsIterator_subtype
     return ll_getIndex().size();
   }
 
-  final static FsIterator_subtypes FS_ITERATOR_EMPTY = new FsIterator_subtypes(null) {
+  final static FsIterator_subtypes<TOP> FS_ITERATOR_EMPTY = new FsIterator_subtypes<TOP>(null) {
     @Override
     public boolean isValid() {return false;}
     @Override
-    public FeatureStructure get() throws NoSuchElementException { throw new NoSuchElementException(); }
+    public TOP get() throws NoSuchElementException { throw new NoSuchElementException(); }
     @Override
     public void moveToNext() {}
     @Override
@@ -68,7 +68,9 @@ public abstract class FsIterator_subtype
     @Override
     public void moveTo(FeatureStructure fs) {}
     @Override
-    public FSIterator<FeatureStructure> copy() { return this; }
+    public FSIterator<TOP> copy() { return this; }
+    @Override
+    public int ll_indexSize() { return 0; }    
   };
   
   @Override

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java Tue Dec 29 16:00:42 2015
@@ -23,9 +23,10 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.function.Function;
 
+import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.jcas.cas.TOP;
 
-public abstract class FsIterator_subtypes_list <T extends TOP>  extends FsIterator_subtypes<T> {
+public abstract class FsIterator_subtypes_list <T extends FeatureStructure>  extends FsIterator_subtypes<T> {
 
   // An array of iterators, one for each subtype.
   //   This array has the indexes for all the subtypes that were non-empty at the time of iterator creation
@@ -48,19 +49,19 @@ public abstract class FsIterator_subtype
   //     subsequently ignored - same effect
   private FsIterator_singletype<T>[] initIterators() {
     iicp.createIndexIteratorCache();
-    final ArrayList<FsIndex_singletype<TOP>> cachedSubIndexes = iicp.cachedSubFsLeafIndexes;
+    final ArrayList<FsIndex_singletype<FeatureStructure>> cachedSubIndexes = iicp.cachedSubFsLeafIndexes;
     
     // map from single-type index to iterator over that single type
-    Function<FsIndex_singletype<TOP>, FsIterator_singletype<T>> m = 
+    Function<FsIndex_singletype<T>, FsIterator_singletype<T>> m = 
         fsIndex_singletype -> (FsIterator_singletype<T>)(fsIndex_singletype.iterator());
     
     FsIterator_singletype<T>[] r = cachedSubIndexes.stream()
-        .filter(leafIndex -> leafIndex.size() > 0)  // filter out empty ones
-        .map(m)  // map fsIndex_singletype to an iterator over that
+        .filter(leafIndex -> leafIndex.size() > 0)  // filter out empty ones     
+        .map( index -> index.iterator())  // map fsIndex_singletype to an iterator over that
         .toArray(FsIterator_singletype[]::new);
 
     // if all are empty, put the first one in (to avoid handling 0 as a special case)
-    return (r.length != 0) ? r : new FsIterator_singletype[] {m.apply(cachedSubIndexes.get(0))};
+    return (r.length != 0) ? r : new FsIterator_singletype[] {(FsIterator_singletype) cachedSubIndexes.get(0).iterator()};
   }
 
   /* (non-Javadoc)

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java Tue Dec 29 16:00:42 2015
@@ -24,7 +24,6 @@ import java.util.NoSuchElementException;
 
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
-import org.apache.uima.jcas.cas.TOP;
 
 /**
  * Performs an ordered iteration among a set of iterators, each one corresponding to
@@ -36,7 +35,7 @@ import org.apache.uima.jcas.cas.TOP;
  *
  * @param <T>
  */
-public class FsIterator_subtypes_ordered<T extends TOP> 
+public class FsIterator_subtypes_ordered<T extends FeatureStructure> 
                     extends FsIterator_subtypes_list<T> {
  
   /**
@@ -47,7 +46,7 @@ public class FsIterator_subtypes_ordered
   
   private boolean wentForward = true;
   
-  final private Comparator<TOP> comparator; 
+  final private Comparator<FeatureStructure> comparator; 
 
   public FsIterator_subtypes_ordered(FsIndex_iicp<T> iicp) {
     super(iicp);

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java Tue Dec 29 16:00:42 2015
@@ -26,9 +26,8 @@ import java.util.NoSuchElementException;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
-import org.apache.uima.jcas.cas.TOP;
 
-public class FsIterator_subtypes_snapshot<T extends TOP> implements LowLevelIterator<T>, Comparator<T> {
+public class FsIterator_subtypes_snapshot<T extends FeatureStructure> implements LowLevelIterator<T>, Comparator<FeatureStructure> {
   
 //  final private FsIndex_flat<T> flatIndex;  // a newly created one, just for this iterator
   final private T[] snapshot;  // local for ref speed
@@ -115,7 +114,7 @@ public class FsIterator_subtypes_snapsho
       }
       pos = i;
     } else {
-      int c = Arrays.binarySearch(snapshot, 0, snapshot.length, (T)fs, this);
+      int c = Arrays.binarySearch(snapshot, 0, snapshot.length, fs, this);
       if (c < 0) {
         // was not found, c is (-(insertion point) - 1)
         //    insertion point      c                pos
@@ -162,7 +161,7 @@ public class FsIterator_subtypes_snapsho
     return indexForComparator;
   }
   
-  public int compare(TOP fs1, TOP fs2) {
+  public int compare(FeatureStructure fs1, FeatureStructure fs2) {
     return this.indexForComparator.compare(fs1, fs2);
   }
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java?rev=1722169&r1=1722168&r2=1722169&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java Tue Dec 29 16:00:42 2015
@@ -23,14 +23,13 @@ import java.util.NoSuchElementException;
 
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
-import org.apache.uima.jcas.cas.TOP;
 
 /**
  * This class has an instance created temporarily to reuse the 
  * computation of the iterator array, for use by the FsIterator_aggregation_common.
  * @param <T> the type of the iterator
  */
-public class FsIterator_subtypes_unordered<T extends TOP> extends FsIterator_subtypes_list<T> {
+public class FsIterator_subtypes_unordered<T extends FeatureStructure> extends FsIterator_subtypes_list<T> {
  
   public FsIterator_subtypes_unordered(FsIndex_iicp<T> iicp) {
     super(iicp);