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 < 0</code> or <code>length > size()</code> or
* <code>destOffset + length > 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;