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 2016/06/09 19:09:55 UTC

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

Author: schor
Date: Thu Jun  9 19:09:54 2016
New Revision: 1747582

URL: http://svn.apache.org/viewvc?rev=1747582&view=rev
Log:
[UIMA-4674] Remove "implements Comparable<FeatureStructure>" from FeatureStructureImplC, because some user-written JCas classes might be defined with implements Comparable<Foo>, and Java complains if there are two of these with different types. Change all spots which depended on this to reference an explicit common comparator.  

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/AllFSs.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/AllFSs.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/AllFSs.java?rev=1747582&r1=1747581&r2=1747582&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/AllFSs.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/AllFSs.java Thu Jun  9 19:09:54 2016
@@ -67,7 +67,7 @@ class AllFSs {
   }
     
   ArrayList<TOP> getAllFSsSorted() {
-    Collections.sort(toBeScanned);
+    Collections.sort(toBeScanned, FeatureStructureImplC::compare);
     return toBeScanned;
   }
   

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java?rev=1747582&r1=1747581&r2=1747582&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java Thu Jun  9 19:09:54 2016
@@ -2740,7 +2740,7 @@ public class BinaryCasSerDes6 implements
 //        : ((Set<TOP>)fssx).stream();
 
     final int[] context = {0, 0};  
-    fss.sorted()
+    fss.sorted(FeatureStructureImplC::compare)
       .forEachOrdered(fs -> {
         // skip write if typemapping, and target type isn't there
 //          if (fs._id == 199) { 

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java?rev=1747582&r1=1747581&r2=1747582&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java Thu Jun  9 19:09:54 2016
@@ -184,9 +184,9 @@ public class CommonSerDesSequential {
   void setHeapEnd(int heapEnd) { this.heapEnd = heapEnd; }
   
   private void merge() {
-    Collections.sort(pending);
+    Collections.sort(pending, FeatureStructureImplC::compare);
     sortedFSs.addAll(pending);
     pending.clear();
-    Collections.sort(sortedFSs);
+    Collections.sort(sortedFSs, FeatureStructureImplC::compare);
   }
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java?rev=1747582&r1=1747581&r2=1747582&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java Thu Jun  9 19:09:54 2016
@@ -70,7 +70,7 @@ import org.apache.uima.jcas.impl.JCasImp
  *     -- can't be static - may be multiple type systems in use
  * 
  */
-public class FeatureStructureImplC implements FeatureStructure, Cloneable, Comparable<FeatureStructure> {
+public class FeatureStructureImplC implements FeatureStructure, Cloneable {
 
   // note: these must be enabled to make the test cases work
   public static final String DISABLE_RUNTIME_FEATURE_VALIDATION = "uima.disable_runtime_feature_validation";
@@ -1177,16 +1177,6 @@ public class FeatureStructureImplC imple
     Misc.internalError();
     return null;  // needed to avoid compile error
   }
-
-  
-  /* (non-Javadoc)
-   * Supports "natural" compare order based on id values
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  @Override
-  public int compareTo(FeatureStructure o) {
-    return Integer.compare(this._id, o.id());
-  }
   
   protected boolean _inSetSortedIndex() { return (_flags & IN_SET_SORTED_INDEX) != 0;}
   protected void _setInSetSortedIndexed() { _flags |= IN_SET_SORTED_INDEX; }
@@ -1403,5 +1393,8 @@ public class FeatureStructureImplC imple
     _typeImpl = ti;
   }
   
+  public static int compare(FeatureStructureImplC a, FeatureStructureImplC b) {
+    return Integer.compare(a._id, b._id);
+  }
 
 }
\ No newline at end of file

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java?rev=1747582&r1=1747581&r2=1747582&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java Thu Jun  9 19:09:54 2016
@@ -112,8 +112,8 @@ public class FSBagIndexTest extends Test
       r.add(it.get());
       it.moveToNext();
     }
-    Collections.sort(r);
-    Arrays.sort(ns);
+    Collections.sort(r, FeatureStructureImplC::compare);
+    Arrays.sort(ns, FeatureStructureImplC::compare);
     assertTrue(Arrays.equals(ns, r.toArray()));
     assertFalse(it.isValid());
   }