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 2017/11/01 20:15:45 UTC

svn commit: r1813988 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src: main/java/org/apache/uima/cas/ main/java/org/apache/uima/jcas/cas/ test/java/x/y/z/

Author: schor
Date: Wed Nov  1 20:15:44 2017
New Revision: 1813988

URL: http://svn.apache.org/viewvc?rev=1813988&view=rev
Log:
[UIMA-5633][UIMA-5632] clean up generics, add missing javadocs

Modified:
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/x/y/z/EndOfSentence.java

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java?rev=1813988&r1=1813987&r2=1813988&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java Wed Nov  1 20:15:44 2017
@@ -66,7 +66,7 @@ public interface ArrayFS<E extends Featu
    *              If <code>srcOffset &lt; 0</code> or <code>length &gt; size()</code> or
    *              <code>destOffset + length &gt; destArray.length</code>.
    */
-  void copyToArray(int srcOffset, FeatureStructure[] dest, int destOffset, int length)
+  <U extends FeatureStructure> void copyToArray(int srcOffset, U[] dest, int destOffset, int length)
       throws ArrayIndexOutOfBoundsException;
 
   /**
@@ -90,11 +90,17 @@ public interface ArrayFS<E extends Featu
 
   /**
    * Creates a new array the this array is copied to.
-   * 
+   * Return type is FeatureStructure to be backwards compatible with V2
    * @return A Java array copy of this FS array.
    */
   FeatureStructure[] toArray();
   
-  TOP[] toArray(TOP[] a);
+  /**
+   * Populates an existing array from this FS Array.
+   * @param a the existing array
+   * @param <T> the type of the element
+   * @return the populated array
+   */
+  <T extends TOP> T[] toArray(T[] a);
 
 }

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java?rev=1813988&r1=1813987&r2=1813988&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java Wed Nov  1 20:15:44 2017
@@ -1265,7 +1265,7 @@ public interface CAS extends AbstractCas
   };
 
   /** 
-   * @oaram <T> the type of the lements of the FSArray
+   * @param <T> the type of the lements of the FSArray
    * @return a lazily created shared (for this CAS) 0-length array
    */
   default <T extends FeatureStructure> FSArray<T> emptyFSArray() {

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java?rev=1813988&r1=1813987&r2=1813988&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java Wed Nov  1 20:15:44 2017
@@ -173,7 +173,7 @@ public final class FSArray<T extends Fea
    * @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int, int)
    */
   @Override
-  public void copyToArray(int srcPos, FeatureStructure[] dest, int destPos, int length) {
+  public <U extends FeatureStructure> void copyToArray(int srcPos, U[] dest, int destPos, int length) {
     int srcEnd = srcPos + length;
     int destEnd = destPos + length;
     if (srcPos < 0 ||
@@ -183,7 +183,7 @@ public final class FSArray<T extends Fea
           String.format("FSArray.copyToArray, srcPos: %,d destPos: %,d length: %,d",  srcPos, destPos, length));
     }
     for (;srcPos < srcEnd && destPos < destEnd;) {
-      dest[destPos++] = _maybeGetPearFs((TOP) get(srcPos++));
+      dest[destPos++] = (U) _maybeGetPearFs(get(srcPos++));
     }
   }
 
@@ -316,16 +316,13 @@ public final class FSArray<T extends Fea
     return false;
   }
 
-  public Object[] toArray(Object[] a) {
-    Object[] r = new Object[size()];
-    System.arraycopy(theArray, 0, r, 0, size()); 
-    return r;
-  }
-
-  public TOP[] toArray(TOP[] a) {
-    TOP[] r = new TOP[size()];
-    System.arraycopy(theArray, 0, r, 0, size());
-    return r;
+  public <U extends TOP> U[] toArray(U[] a) {
+    final int sz = size();
+    if (a.length < sz) {
+      return (U[]) Arrays.copyOf(theArray, sz, a.getClass());
+    }
+    System.arraycopy(theArray, 0, a, 0, size());
+    return a;
   }
 
  

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java?rev=1813988&r1=1813987&r2=1813988&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java Wed Nov  1 20:15:44 2017
@@ -84,7 +84,7 @@ import org.apache.uima.util.impl.Constan
  */
 
 public class FSArrayList <T extends TOP> extends TOP implements 
-                         UimaSerializableFSs, CommonArrayFS, SelectViaCopyToArray, 
+                         UimaSerializableFSs, CommonArrayFS<T>, SelectViaCopyToArray<T>, 
                          List<T>, RandomAccess, Cloneable {
  
   /** The Constant EMPTY_LIST. */
@@ -675,7 +675,7 @@ public class FSArrayList <T extends TOP>
    * @param destPos -
    * @param length -
    * @param <E> the type of the source array being copied from
-   * @see org.apache.uima.cas.ArrayFS#copyFromArray(FeatureStructure[], int, int, int)
+   * @see org.apache.uima.cas.ArrayFS#copyFromArray(T[], int, int, int)
    */
   public <E extends FeatureStructure> void copyFromArray(E[] src, int srcPos, int destPos, int length) {
     int srcEnd = srcPos + length;
@@ -699,7 +699,7 @@ public class FSArrayList <T extends TOP>
    * @param destPos -
    * @param length -
    * @param <E> the type of the elements of the Array being copied into
-   * @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int, int)
+   * @see org.apache.uima.cas.ArrayFS#copyToArray(int, U[], int, int)
    */
   public <E extends FeatureStructure> void copyToArray(int srcPos, E[] dest, int destPos, int length) {
     int srcEnd = srcPos + length;
@@ -716,14 +716,12 @@ public class FSArrayList <T extends TOP>
   }
 
   /**
+   * returns TOP[] because can't make array of T
    * Note: converts to pear trampolines.
-   *
-   * @return the feature structure[]
-   * @see org.apache.uima.cas.ArrayFS#toArray()
    */
   @Override
-  public T[] toArray() {
-    T[] r = (T[]) new TOP[size()];
+  public TOP[] toArray() {
+    TOP[] r = new TOP[size()];
     copyToArray(0, r, 0, size());
     return r;
   }
@@ -798,7 +796,7 @@ public class FSArrayList <T extends TOP>
   }
   
   /**
-   * Convenience - create a FSArrayList from an existing FeatureStructure[].
+   * Convenience - create a FSArrayList from an existing Array.
    *
    * @param <E> generic type of returned FS
    * @param <F> generic type of the elements of the array argument

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java?rev=1813988&r1=1813987&r2=1813988&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java Wed Nov  1 20:15:44 2017
@@ -246,7 +246,7 @@ public class IntegerArrayList extends TO
   }
 
   /**
-   * @see org.apache.uima.cas.ArrayFS#copyFromArray(FeatureStructure[], int, int, int)
+   * @see org.apache.uima.cas.ArrayFS#copyFromArray(T[], int, int, int)
    * @param src -
    * @param srcPos -
    * @param destPos -
@@ -269,7 +269,7 @@ public class IntegerArrayList extends TO
   }
 
   /**
-   * @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int, int)
+   * @see org.apache.uima.cas.ArrayFS#copyToArray(int, E[], int, int)
    * @param srcPos -
    * @param dest -
    * @param destPos -
@@ -357,7 +357,7 @@ public class IntegerArrayList extends TO
   }
   
   /**
-   * Convenience - create a IntegerArrayList from an existing FeatureStructure[]
+   * Convenience - create a IntegerArrayList from an existing array.
    * @param jcas -
    * @param a -
    * @return -

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/x/y/z/EndOfSentence.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/x/y/z/EndOfSentence.java?rev=1813988&r1=1813987&r2=1813988&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/x/y/z/EndOfSentence.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/x/y/z/EndOfSentence.java Wed Nov  1 20:15:44 2017
@@ -5,13 +5,9 @@
 
 package x.y.z;
 
-import java.lang.invoke.CallSite;
-import java.lang.invoke.MethodHandle;
-
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
-import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;