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;