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/11/02 13:19:46 UTC
svn commit: r1711942 [1/2] -
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/
Author: schor
Date: Mon Nov 2 12:19:46 2015
New Revision: 1711942
URL: http://svn.apache.org/viewvc?rev=1711942&view=rev
Log:
[UIMA-4663] update built-in JCas cover objects for v3
Added:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/JavaObjectArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyList.java
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ShortArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/TOP.java
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java Mon Nov 2 12:19:46 2015
@@ -20,11 +20,13 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.BooleanArrayFS;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** JCas class model for BooleanArray */
-public final class BooleanArray extends TOP implements BooleanArrayFS {
+public final class BooleanArray extends TOP implements CommonPrimitiveArray, BooleanArrayFS {
/**
* Each cover class when loaded sets an index. Used in the JCas typeArray to go from the cover
* class or class instance to the corresponding instance of the _Type class
@@ -43,13 +45,14 @@ public final class BooleanArray extends
return typeIndexID;
}
+ /* local data */
+ private final boolean[] theArray;
+
+
// never called. Here to disable default constructor
+ @SuppressWarnings("unused")
private BooleanArray() {
- }
-
- /* Internal - Constructor used by generator */
- public BooleanArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -58,79 +61,79 @@ public final class BooleanArray extends
* @param length of array
*/
public BooleanArray(JCas jcas, int length) {
- this(jcas.getLowLevelCas().ll_createBooleanArray(length), jcas.getType(typeIndexID));
+ super(jcas);
+ theArray = new boolean[length];
+ }
+
+ /**
+ * Called by generator
+ * @param c -
+ * @param t -
+ * @param l -
+ */
+ public BooleanArray(TypeImpl t, CASImpl c, int l) {
+ super(t, c);
+ theArray = new boolean[l];
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#get(int)
*/
public boolean get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- return jcasType.ll_cas.ll_getBooleanArrayValue(addr, i);
+ return theArray[i];
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#set(int , boolean)
*/
public void set(int i, boolean v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setBooleanArrayValue(addr, i, v);
+ theArray[i] = v;
+ _casView.maybeLogArrayUpdate(this, null, i);
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#copyFromArray(boolean[], int, int, int)
*/
- public void copyFromArray(boolean[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setBooleanArrayValue(addr, i + destOffset, src[i + srcOffset]);
- }
+ public void copyFromArray(boolean[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#copyToArray(int, boolean[], int, int)
*/
- public void copyToArray(int srcOffset, boolean[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getBooleanArrayValue(addr, i + srcOffset);
- }
+ public void copyToArray(int srcPos, boolean[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#toArray()
*/
public boolean[] toArray() {
- final int size = size();
- boolean[] outArray = new boolean[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/** return the size of the array */
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#copyToArray(int, String[], int, int)
*/
- public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
+ public void copyToArray(int srcPos, String[] dest, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = Boolean.toString(jcasType.ll_cas.ll_getBooleanArrayValue(addr, i
- + srcOffset));
+ dest[i + destPos] = Boolean.toString(theArray[i + srcPos]);
}
}
/**
* @see org.apache.uima.cas.BooleanArrayFS#copyFromArray(String[], int, int, int)
*/
- public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
+ public void copyFromArray(String[] src, int srcPos, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setBooleanArrayValue(addr, i + destOffset, "true".equalsIgnoreCase(src[i
- + srcOffset]));
+ theArray[i + destPos] = Boolean.parseBoolean(src[i + srcPos]);
}
}
@@ -140,4 +143,14 @@ public final class BooleanArray extends
copyToArray(0, strArray, 0, size);
return strArray;
}
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ BooleanArray bv = (BooleanArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java Mon Nov 2 12:19:46 2015
@@ -20,11 +20,13 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.ByteArrayFS;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** JCas class model for ByteArray */
-public final class ByteArray extends TOP implements ByteArrayFS {
+public final class ByteArray extends TOP implements CommonPrimitiveArray, ByteArrayFS {
/**
* Each cover class when loaded sets an index. Used in the JCas typeArray to go from the cover
* class or class instance to the corresponding instance of the _Type class
@@ -43,13 +45,11 @@ public final class ByteArray extends TOP
return typeIndexID;
}
+ private final byte[] theArray;
// never called. Here to disable default constructor
+ @SuppressWarnings("unused")
private ByteArray() {
- }
-
- /* Internal - Constructor used by generator */
- public ByteArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -58,79 +58,80 @@ public final class ByteArray extends TOP
* @param length the length of the array in bytes
*/
public ByteArray(JCas jcas, int length) {
- this(jcas.getLowLevelCas().ll_createByteArray(length), jcas.getType(typeIndexID));
+ super(jcas);
+ theArray = new byte[length];
+ }
+
+ /**
+ * used by generator
+ * Make a new ByteArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array in bytes
+ */
+ public ByteArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ theArray = new byte[length];
}
/**
* @see org.apache.uima.cas.ByteArrayFS#get(int)
*/
public byte get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- return jcasType.ll_cas.ll_getByteArrayValue(addr, i);
+ return theArray[i];
}
/**
* @see org.apache.uima.cas.ByteArrayFS#set(int , byte)
*/
public void set(int i, byte v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setByteArrayValue(addr, i, v);
+ theArray[i] = v;
+ _casView.maybeLogArrayUpdate(this, null, i);
}
/**
* @see org.apache.uima.cas.ByteArrayFS#copyFromArray(byte[], int, int, int)
*/
- public void copyFromArray(byte[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setByteArrayValue(addr, i + destOffset, src[i + srcOffset]);
- }
+ public void copyFromArray(byte[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.ByteArrayFS#copyToArray(int, byte[], int, int)
*/
- public void copyToArray(int srcOffset, byte[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getByteArrayValue(addr, i + srcOffset);
- }
- }
+ public void copyToArray(int srcPos, byte[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
+ }
/**
* @see org.apache.uima.cas.ByteArrayFS#toArray()
*/
public byte[] toArray() {
- final int size = size();
- byte[] outArray = new byte[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/** return the size of the array */
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.ByteArrayFS#copyToArray(int, String[], int, int)
*/
- public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
+ public void copyToArray(int srcPos, String[] dest, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = Byte.toString(jcasType.ll_cas
- .ll_getByteArrayValue(addr, i + srcOffset));
+ dest[i + destPos] = Byte.toString(theArray[i + srcPos]);
}
}
/**
* @see org.apache.uima.cas.ByteArrayFS#copyFromArray(String[], int, int, int)
*/
- public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
+ public void copyFromArray(String[] src, int srcPos, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, destPos, length);
for (int i = 0; i < length; i++) {
- jcasType.ll_cas
- .ll_setByteArrayValue(addr, i + destOffset, Byte.parseByte(src[i + srcOffset]));
+ theArray[i + destPos] = Byte.parseByte(src[i + srcPos]);
}
}
@@ -140,4 +141,19 @@ public final class ByteArray extends TOP
copyToArray(0, strArray, 0, size);
return strArray;
}
+
+ // internal use
+ public byte[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ ByteArray bv = (ByteArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java Mon Nov 2 12:19:46 2015
@@ -20,11 +20,13 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.DoubleArrayFS;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** JCas class model for DoubleArray */
-public final class DoubleArray extends TOP implements DoubleArrayFS {
+public final class DoubleArray extends TOP implements CommonPrimitiveArray, DoubleArrayFS {
/**
* Each cover class when loaded sets an index. Used in the JCas typeArray to go from the cover
* class or class instance to the corresponding instance of the _Type class
@@ -43,13 +45,12 @@ public final class DoubleArray extends T
return typeIndexID;
}
+ private final double[] theArray;
+
// never called. Here to disable default constructor
+ @SuppressWarnings("unused")
private DoubleArray() {
- }
-
- /* Internal - Constructor used by generator */
- public DoubleArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -58,79 +59,80 @@ public final class DoubleArray extends T
* @param length the length of the array
*/
public DoubleArray(JCas jcas, int length) {
- this(jcas.getLowLevelCas().ll_createDoubleArray(length), jcas.getType(typeIndexID));
+ super(jcas);
+ theArray = new double[length];
+ }
+
+ /**
+ * used by generator
+ * Make a new DoubleArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array in bytes
+ */
+ public DoubleArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ theArray = new double[length];
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#get(int)
*/
public double get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- return jcasType.ll_cas.ll_getDoubleArrayValue(addr, i);
+ return theArray[i];
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#set(int , double)
*/
public void set(int i, double v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setDoubleArrayValue(addr, i, v);
+ theArray[i] = v;
+ _casView.maybeLogArrayUpdate(this, null, i);
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#copyFromArray(double[], int, int, int)
*/
- public void copyFromArray(double[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setDoubleArrayValue(addr, i + destOffset, src[i + srcOffset]);
- }
+ public void copyFromArray(double[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#copyToArray(int, double[], int, int)
*/
- public void copyToArray(int srcOffset, double[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getDoubleArrayValue(addr, i + srcOffset);
- }
+ public void copyToArray(int srcPos, double[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#toArray()
*/
public double[] toArray() {
- final int size = size();
- double[] outArray = new double[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/** return the size of the array */
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#copyToArray(int, String[], int, int)
*/
- public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
+ public void copyToArray(int srcPos, String[] dest, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = Double.toString(jcasType.ll_cas.ll_getDoubleArrayValue(addr, i
- + srcOffset));
+ dest[i + destPos] = Double.toString(theArray[i + srcPos]);
}
}
/**
* @see org.apache.uima.cas.DoubleArrayFS#copyFromArray(String[], int, int, int)
*/
- public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
+ public void copyFromArray(String[] src, int srcPos, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, destPos, length);
for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setDoubleArrayValue(addr, i + destOffset, Double.parseDouble(src[i
- + srcOffset]));
+ theArray[i + destPos] = Double.parseDouble(src[i + srcPos]);
}
}
@@ -140,4 +142,19 @@ public final class DoubleArray extends T
copyToArray(0, strArray, 0, size);
return strArray;
}
+
+ // internal use
+ public double[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ DoubleArray bv = (DoubleArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,12 @@
package org.apache.uima.jcas.cas;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
-public class EmptyFSList extends FSList {
+public class EmptyFSList extends FSList implements EmptyList {
public final static int typeIndexID = JCasRegistry.register(EmptyFSList.class);
@@ -32,17 +34,26 @@ public class EmptyFSList extends FSList
return typeIndexID;
}
+ public final static EmptyFSList singleton = new EmptyFSList();
+
// Never called. Disable default constructor
protected EmptyFSList() {
}
- /* Internal - Constructor used by generator */
- public EmptyFSList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public EmptyFSList(JCas jcas) {
super(jcas);
}
+
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public EmptyFSList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,12 @@
package org.apache.uima.jcas.cas;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
-public class EmptyFloatList extends FloatList {
+public class EmptyFloatList extends FloatList implements EmptyList {
public final static int typeIndexID = JCasRegistry.register(EmptyFloatList.class);
@@ -32,17 +34,25 @@ public class EmptyFloatList extends Floa
return typeIndexID;
}
+ public final static EmptyFloatList singleton = new EmptyFloatList();
+
// Never called. Disable default constructor
protected EmptyFloatList() {
}
- /* Internal - Constructor used by generator */
- public EmptyFloatList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public EmptyFloatList(JCas jcas) {
super(jcas);
}
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public EmptyFloatList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,12 @@
package org.apache.uima.jcas.cas;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
-public class EmptyIntegerList extends IntegerList {
+public class EmptyIntegerList extends IntegerList implements EmptyList {
public final static int typeIndexID = JCasRegistry.register(EmptyIntegerList.class);
@@ -32,17 +34,25 @@ public class EmptyIntegerList extends In
return typeIndexID;
}
+ public final static EmptyIntegerList singleton = new EmptyIntegerList();
+
// Never called. Disable default constructor
protected EmptyIntegerList() {
}
- /* Internal - Constructor used by generator */
- public EmptyIntegerList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public EmptyIntegerList(JCas jcas) {
super(jcas);
}
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public EmptyIntegerList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,12 @@
package org.apache.uima.jcas.cas;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
-public class EmptyStringList extends StringList {
+public class EmptyStringList extends StringList implements EmptyList {
public final static int typeIndexID = JCasRegistry.register(EmptyStringList.class);
@@ -31,18 +33,26 @@ public class EmptyStringList extends Str
public int getTypeIndexID() {
return typeIndexID;
}
+
+ public final static EmptyStringList singleton = new EmptyStringList();
// Never called. Disable default constructor
protected EmptyStringList() {
}
- /* Internal - Constructor used by generator */
- public EmptyStringList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public EmptyStringList(JCas jcas) {
super(jcas);
}
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public EmptyStringList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java Mon Nov 2 12:19:46 2015
@@ -22,12 +22,13 @@ package org.apache.uima.jcas.cas;
import org.apache.uima.cas.ArrayFS;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.impl.CASImpl;
-import org.apache.uima.cas.impl.LowLevelCAS;
+import org.apache.uima.cas.impl.FeatureStructureImplC;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** Java Class model for Cas FSArray type */
-public final class FSArray extends TOP implements ArrayFS {
+public final class FSArray extends TOP implements CommonArray, ArrayFS {
/**
* each cover class when loaded sets an index. used in the JCas typeArray to go from the cover
@@ -47,13 +48,12 @@ public final class FSArray extends TOP i
return typeIndexID;
}
+ private final FeatureStructureImplC[] theArray;
+
// never called. Here to disable default constructor
+ @SuppressWarnings("unused")
private FSArray() {
- }
-
- /* Internal - Constructor used by generator */
- public FSArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -62,106 +62,90 @@ public final class FSArray extends TOP i
* @param length The number of elements in the new array
*/
public FSArray(JCas jcas, int length) {
- this(
- /* addr */jcas.getLowLevelCas().ll_createArray(jcas.getType(typeIndexID).casTypeCode, length),
- /* type */jcas.getType(typeIndexID));
-
- // at this point we can use the jcasType value, as it is set
- // can't do this earlier as the very first statement is required by
- // JAVA to be the super or alternate constructor call
- jcasType.casImpl.checkArrayPreconditions(length);
- }
-
- // /** create a new FSArray of a given size.
- // *
- // * @param jcas
- // * @param length
- // */
- //
- // public FSArray create(JCas jcas, int length){
- // return new FSArray(jcas, length);
- // }
+ super(jcas);
+ _casView.validateArraySize(length);
+ theArray = new FeatureStructureImplC[length];
+ }
+
+ /**
+ * used by generator
+ * Make a new FSArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array
+ */
+ public FSArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ _casView.validateArraySize(length);
+ theArray = new FeatureStructureImplC[length];
+ }
+
/** return the indexed value from the corresponding Cas FSArray as a Java Model object. */
public FeatureStructure get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- final LowLevelCAS ll_cas = jcasType.ll_cas;
- return ll_cas.ll_getFSForRef(ll_cas.ll_getRefArrayValue(addr, i));
+ return theArray[i];
}
/** updates the Cas, setting the indexed value with the corresponding Cas FeatureStructure. */
public void set(int i, FeatureStructure v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setRefArrayValue(addr, i, jcasType.ll_cas.ll_getFSRef(v));
+ theArray[i] = (FeatureStructureImplC) v;
}
/** return the size of the array. */
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.ArrayFS#copyFromArray(FeatureStructure[], int, int, int)
*/
- public void copyFromArray(FeatureStructure[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setRefArrayValue(addr, i + destOffset, jcasType.ll_cas.ll_getFSRef(src[i
- + srcOffset]));
- }
+ public void copyFromArray(FeatureStructure[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int, int)
*/
- public void copyToArray(int srcOffset, FeatureStructure[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefArrayValue(
- addr, i + srcOffset));
- }
+ public void copyToArray(int srcPos, FeatureStructure[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
}
/**
* @see org.apache.uima.cas.ArrayFS#toArray()
*/
public FeatureStructure[] toArray() {
- final int size = size();
- FeatureStructure[] outArray = new FeatureStructure[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/**
* Not supported, will throw UnsupportedOperationException
*/
- public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
+ public void copyFromArray(String[] src, int srcPos, int destPos, int length) {
throw new UnsupportedOperationException();
}
/**
* Copies an array of Feature Structures to an Array of Strings.
* The strings are the "toString()" representation of the feature structures,
- * which are probably something that looks like FeatureStructure@123456
*
- * @param srcOffset
+ * @param srcPos
* The index of the first element to copy.
* @param dest
* The array to copy to.
- * @param destOffset
+ * @param destPos
* Where to start copying into <code>dest</code>.
* @param length
* The number of elements to copy.
* @exception ArrayIndexOutOfBoundsException
- * If <code>srcOffset < 0</code> or
+ * If <code>srcPos < 0</code> or
* <code>length > size()</code> or
- * <code>destOffset + length > destArray.length</code>.
+ * <code>destPos + length > destArray.length</code>.
*/
- public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- CASImpl ll = jcasType.casImpl;
- ll.checkArrayBounds(addr, srcOffset, length);
+ public void copyToArray(int srcPos, String[] dest, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = ll.ll_getFSForRef(ll.ll_getRefArrayValue(this.addr, i + srcOffset)).toString();
+ FeatureStructureImplC fs = theArray[i + srcPos];
+ dest[i + destPos] = (fs == null) ? null : fs.toString();
}
}
@@ -172,4 +156,18 @@ public final class FSArray extends TOP i
return strArray;
}
+ // internal use
+ public FeatureStructureImplC[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ FSArray bv = (FSArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java Mon Nov 2 12:19:46 2015
@@ -20,55 +20,70 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.CASRuntimeException;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
-import org.apache.uima.jcas.JCasRegistry;
-public class FSList extends org.apache.uima.jcas.cas.TOP {
-
- public final static int typeIndexID = JCasRegistry.register(FSList.class);
-
- public final static int type = typeIndexID;
-
- public int getTypeIndexID() {
- return typeIndexID;
- }
+public abstract class FSList extends CommonList {
// Never called.
protected FSList() {// Disable default constructor
}
- /* Internal - Constructor used by generator */
- public FSList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public FSList(JCas jcas) {
super(jcas);
}
- public TOP getNthElement(int i) {
- if (this instanceof EmptyFSList) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_ON_EMPTY_LIST, new String[] { "EmptyFSList" });
- throw casEx;
- }
- if (i < 0) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_NEGATIVE_INDEX, new String[] { Integer.toString(i) });
- throw casEx;
- }
- int originali = i;
- FSList cg = this;
- for (;; i--) {
- if (cg instanceof EmptyFSList) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_PAST_END, new String[] { Integer.toString(originali) });
- throw casEx;
- }
- NonEmptyFSList c = (NonEmptyFSList) cg;
- if (i == 0)
- return c.getHead();
- cg = c.getTail();
- }
- }
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public FSList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
+ public NonEmptyFSList createNonEmptyNode(CommonList tail) {
+ NonEmptyFSList node = new NonEmptyFSList(this._typeImpl, this._casView);
+ node.setTail((FSList) tail);
+ return node;
+ }
+
+ public NonEmptyFSList createNonEmptyNode() { return createNonEmptyNode(null); }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#getEmptyNode()
+ */
+ @Override
+ public EmptyFSList getEmptyNode() {
+ return EmptyFSList.singleton;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#get_headAsString()
+ */
+ @Override
+ public String get_headAsString() {
+ throw new CASRuntimeException(); // not yet impl
+// return ((NonEmptyFSList)this).getHead().toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#getTail()
+ */
+ @Override
+ public CommonList getTail() {
+ return ((NonEmptyFSList)this).getTail();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#setTail(org.apache.uima.jcas.cas.CommonList)
+ */
+ @Override
+ public void setTail(CommonList v) {
+ ((NonEmptyFSList)this).setTail(v);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray.java Mon Nov 2 12:19:46 2015
@@ -20,11 +20,13 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.FloatArrayFS;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** Java Cas model for Cas FloatArray. */
-public final class FloatArray extends TOP implements FloatArrayFS {
+public final class FloatArray extends TOP implements CommonPrimitiveArray, FloatArrayFS {
/**
* Each cover class when loaded sets an index. Used in the JCas typeArray to go from the cover
@@ -43,17 +45,11 @@ public final class FloatArray extends TO
public int getTypeIndexID() {
return typeIndexID;
}
+
+ private final float[] theArray;
private FloatArray() { // never called. Here to disable default constructor
- }
-
- // * There are n creation actions
- // * 1 - create via factory.create() a new one
- // * 2 - iterator or dereferencing calling generator to create
-
- /* Internal - Constructor used by generator */
- public FloatArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -62,17 +58,22 @@ public final class FloatArray extends TO
* @param length the size of the array
*/
public FloatArray(JCas jcas, int length) {
- this(
- /* addr */
- jcas.getLowLevelCas().ll_createArray(jcas.getType(typeIndexID).casTypeCode, length),
- /* type */
- jcas.getType(typeIndexID));
-
- // at this point we can use the jcasType value, as it is set
- // can't do this earlier as the very first statement is required by
- // JAVA to be the super or alternate constructor call
- jcasType.casImpl.checkArrayPreconditions(length);
+ super(jcas);
+ theArray = new float[length];
}
+
+ /**
+ * used by generator
+ * Make a new FloatArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array in bytes
+ */
+ public FloatArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ theArray = new float[length];
+ }
+
// /**
// * create a new FloatArray of a given size.
@@ -89,8 +90,7 @@ public final class FloatArray extends TO
* return the indexed value from the corresponding Cas FloatArray as a float,
*/
public float get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- return jcasType.ll_cas.ll_getFloatArrayValue(addr, i);
+ return theArray[i];
}
/**
@@ -102,38 +102,28 @@ public final class FloatArray extends TO
* value to set
*/
public void set(int i, float v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setFloatArrayValue(addr, i, v);
+ theArray[i] = v;
}
/**
* @see org.apache.uima.cas.FloatArrayFS#copyFromArray(float[], int, int, int)
*/
- public void copyFromArray(float[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setFloatArrayValue(addr, i + destOffset, src[i + srcOffset]);
- }
+ public void copyFromArray(float[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.FloatArrayFS#copyToArray(int, float[], int, int)
*/
- public void copyToArray(int srcOffset, float[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getFloatArrayValue(addr, i + srcOffset);
- }
+ public void copyToArray(int srcPos, float[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
}
/**
* @see org.apache.uima.cas.ArrayFS#toArray()
*/
public float[] toArray() {
- final int size = size();
- float[] outArray = new float[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/**
@@ -143,17 +133,16 @@ public final class FloatArray extends TO
*/
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.FloatArrayFS#copyToArray(int, String[], int, int)
*/
public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
+ _casView.checkArrayBounds(theArray.length, srcOffset, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = Float.toString(jcasType.ll_cas.ll_getFloatArrayValue(addr, i
- + srcOffset));
+ dest[i + destOffset] = Float.toString(theArray[i + srcOffset]);
}
}
@@ -161,10 +150,9 @@ public final class FloatArray extends TO
* @see org.apache.uima.cas.FloatArrayFS#copyFromArray(String[], int, int, int)
*/
public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
+ _casView.checkArrayBounds(theArray.length, destOffset, length);
for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setFloatArrayValue(addr, i + destOffset, Float.parseFloat(src[i
- + srcOffset]));
+ theArray[i + destOffset] = Float.parseFloat(src[i + srcOffset]);
}
}
@@ -177,4 +165,19 @@ public final class FloatArray extends TO
copyToArray(0, strArray, 0, size);
return strArray;
}
+
+ // internal use only
+ public float[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ FloatArray bv = (FloatArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java Mon Nov 2 12:19:46 2015
@@ -19,57 +19,74 @@
package org.apache.uima.jcas.cas;
-import org.apache.uima.cas.CASRuntimeException;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
-import org.apache.uima.jcas.JCasRegistry;
-public class FloatList extends org.apache.uima.jcas.cas.TOP {
-
- public final static int typeIndexID = JCasRegistry.register(FloatList.class);
-
- public final static int type = typeIndexID;
-
- public int getTypeIndexID() {
- return typeIndexID;
- }
+public abstract class FloatList extends CommonList {
// Never called.
protected FloatList() {// Disable default constructor
}
- /* Internal - Constructor used by generator */
- public FloatList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public FloatList(JCas jcas) {
super(jcas);
}
- public float getNthElement(int i) {
- if (this instanceof EmptyFloatList) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_ON_EMPTY_LIST, new String[] { "EmptyFloatList" });
- throw casEx;
- }
- if (i < 0) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_NEGATIVE_INDEX, new String[] {Integer.toString(i)});
- throw casEx;
- }
- int originali = i;
-
- FloatList cg = this;
- for (;; i--) {
- if (cg instanceof EmptyFloatList) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_PAST_END, new String[] {Integer.toString(originali)});
- throw casEx;
- }
- NonEmptyFloatList c = (NonEmptyFloatList) cg;
- if (i == 0)
- return c.getHead();
- cg = c.getTail();
- }
- }
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public FloatList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
+ public float getNthElement(int i) {
+ return ((NonEmptyFloatList) getNonEmptyNthNode(i)).getHead();
+ }
+
+ public NonEmptyFloatList createNonEmptyNode(CommonList tail) {
+ NonEmptyFloatList node = new NonEmptyFloatList(this._typeImpl, this._casView);
+ node.setTail((FloatList) tail);
+ return node;
+ }
+
+ public NonEmptyFloatList createNonEmptyNode() { return createNonEmptyNode(null); }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#getEmptyNode()
+ */
+ @Override
+ public EmptyFloatList getEmptyNode() {
+ return EmptyFloatList.singleton;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#get_headAsString()
+ */
+ @Override
+ public String get_headAsString() {
+ return Float.toString(((NonEmptyFloatList)this).getHead());
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#getTail()
+ */
+ @Override
+ public CommonList getTail() {
+ return ((NonEmptyFloatList)this).getTail();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#setTail(org.apache.uima.jcas.cas.CommonList)
+ */
+ @Override
+ public void setTail(CommonList v) {
+ ((NonEmptyFloatList)this).setTail(v); // value cast is for checking
+
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray.java Mon Nov 2 12:19:46 2015
@@ -20,11 +20,13 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.IntArrayFS;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** The Java Class model corresponding to the Cas IntegerArray_JCasImpl type. */
-public final class IntegerArray extends TOP implements IntArrayFS {
+public final class IntegerArray extends TOP implements CommonPrimitiveArray, IntArrayFS {
/**
* Each cover class when loaded sets an index. Used in the JCas typeArray to go from the cover
* class or class instance to the corresponding instance of the _Type class
@@ -42,13 +44,12 @@ public final class IntegerArray extends
public int getTypeIndexID() {
return typeIndexID;
}
+
+ private final int[] theArray;
+ @SuppressWarnings("unused")
private IntegerArray() { // never called. Here to disable default constructor
- }
-
- /* Internal - Constructor used by generator */
- public IntegerArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -57,86 +58,71 @@ public final class IntegerArray extends
* @param length The number of elements in the new array
*/
public IntegerArray(JCas jcas, int length) {
- this(
- /* addr */jcas.getLowLevelCas().ll_createArray(jcas.getType(typeIndexID).casTypeCode, length),
- /* type */jcas.getType(typeIndexID));
- // at this point we can use the jcasType value, as it is set
- // can't do this earlier as the very first statement is required by
- // JAVA to be the super or alternate constructor call
- jcasType.casImpl.checkArrayPreconditions(length);
- }
-
- // /**
- // * create a new IntegerArray of a given size.
- // *
- // * @param jcas
- // * @param length
- // */
- //
- // public IntegerArray create(JCas jcas, int length) {
- // return new IntegerArray(jcas, length);
- // }
+ super(jcas);
+ theArray = new int[length];
+ }
+
+ /**
+ * used by generator
+ * Make a new IntegerArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array in bytes
+ */
+ public IntegerArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ theArray = new int[length];
+ }
/**
* return the indexed value from the corresponding Cas IntegerArray_JCasImpl as an int.
*/
public int get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- return jcasType.ll_cas.ll_getIntArrayValue(addr, i);
+ return theArray[i];
}
/**
* update the Cas, setting the indexed value to the passed in Java int value.
*/
public void set(int i, int v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setIntArrayValue(addr, i, v);
+ theArray[i] = v;
+ _casView.maybeLogArrayUpdate(this, null, i);
}
/**
* @see org.apache.uima.cas.IntArrayFS#copyFromArray(int[], int, int, int)
*
*/
- public void copyFromArray(int[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setIntArrayValue(addr, i + destOffset, src[i + srcOffset]);
- }
+ public void copyFromArray(int[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.IntArrayFS#copyToArray(int, int[], int, int)
*/
- public void copyToArray(int srcOffset, int[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getIntArrayValue(addr, i + srcOffset);
- }
+ public void copyToArray(int srcPos, int[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
}
/**
* @see org.apache.uima.cas.IntArrayFS#toArray()
*/
public int[] toArray() {
- final int size = size();
- int[] outArray = new int[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/** return the size of the array */
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.IntArrayFS#copyToArray(int, String[], int, int)
*/
public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
+ _casView.checkArrayBounds(theArray.length, srcOffset, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = Integer.toString(jcasType.ll_cas.ll_getIntArrayValue(addr, i
- + srcOffset));
+ dest[i + destOffset] = Integer.toString(theArray[i + srcOffset]);
}
}
@@ -144,10 +130,9 @@ public final class IntegerArray extends
* @see org.apache.uima.cas.IntArrayFS#copyFromArray(String[], int, int, int)
*/
public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
+ _casView.checkArrayBounds(theArray.length, srcOffset, length);
for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setIntArrayValue(addr, i + destOffset, Integer
- .parseInt(src[i + srcOffset]));
+ theArray[i + destOffset] = Integer.parseInt(src[i + srcOffset]);
}
}
@@ -160,4 +145,19 @@ public final class IntegerArray extends
copyToArray(0, strArray, 0, size);
return strArray;
}
+
+ // internal use only
+ public int[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ IntegerArray bv = (IntegerArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java Mon Nov 2 12:19:46 2015
@@ -19,56 +19,74 @@
package org.apache.uima.jcas.cas;
-import org.apache.uima.cas.CASRuntimeException;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
-import org.apache.uima.jcas.JCasRegistry;
-public class IntegerList extends org.apache.uima.jcas.cas.TOP {
-
- public final static int typeIndexID = JCasRegistry.register(IntegerList.class);
-
- public final static int type = typeIndexID;
-
- public int getTypeIndexID() {
- return typeIndexID;
- }
+public abstract class IntegerList extends CommonList {
// Never called.
protected IntegerList() { // Disable default constructor
}
- /* Internal - Constructor used by generator */
- public IntegerList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public IntegerList(JCas jcas) {
super(jcas);
}
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public IntegerList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
public int getNthElement(int i) {
- if (this instanceof EmptyIntegerList) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_ON_EMPTY_LIST, new String[] { "EmptyIntegerList" });
- throw casEx;
- }
- if (i < 0) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_NEGATIVE_INDEX, new String[] { Integer.toString(i) });
- throw casEx;
- }
- int originali = i;
- IntegerList cg = this;
- for (;; i--) {
- if (cg instanceof EmptyIntegerList) {
- CASRuntimeException casEx = new CASRuntimeException(
- CASRuntimeException.JCAS_GET_NTH_PAST_END, new String[] { Integer.toString(originali) });
- throw casEx;
- }
- NonEmptyIntegerList c = (NonEmptyIntegerList) cg;
- if (i == 0)
- return c.getHead();
- cg = c.getTail();
- }
+ return ((NonEmptyIntegerList) getNonEmptyNthNode(i)).getHead();
}
+
+ public NonEmptyIntegerList createNonEmptyNode(CommonList tail) {
+ NonEmptyIntegerList node = new NonEmptyIntegerList(this._typeImpl, this._casView);
+ node.setTail((IntegerList) tail);
+ return node;
+ }
+
+ public NonEmptyIntegerList createNonEmptyNode() { return createNonEmptyNode(null); }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#getEmptyNode()
+ */
+ @Override
+ public EmptyIntegerList getEmptyNode() {
+ return EmptyIntegerList.singleton;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#get_headAsString()
+ */
+ @Override
+ public String get_headAsString() {
+ return Integer.toString(((NonEmptyIntegerList)this).getHead());
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#getTail()
+ */
+ @Override
+ public CommonList getTail() {
+ return ((NonEmptyIntegerList)this).getTail();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonList#setTail(org.apache.uima.jcas.cas.CommonList)
+ */
+ @Override
+ public void setTail(CommonList v) {
+ ((NonEmptyIntegerList)this).setTail(v);
+ }
+
+
}
Added: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/JavaObjectArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/JavaObjectArray.java?rev=1711942&view=auto
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/JavaObjectArray.java (added)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/JavaObjectArray.java Mon Nov 2 12:19:46 2015
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.jcas.cas;
+
+import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.FeatureStructureImplC;
+import org.apache.uima.cas.impl.TypeImpl;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.jcas.JCasRegistry;
+
+/** Java Class model for Cas FSArray type */
+public final class JavaObjectArray extends TOP implements CommonPrimitiveArray {
+
+ /**
+ * each cover class when loaded sets an index. used in the JCas typeArray to go from the cover
+ * class or class instance to the corresponding instance of the _Type class
+ */
+ public final static int typeIndexID = JCasRegistry.register(JavaObjectArray.class);
+
+ public final static int type = typeIndexID;
+
+ /**
+ * used to obtain reference to the _Type instance
+ *
+ * @return the type array index
+ */
+ // can't be factored - refs locally defined field
+ public int getTypeIndexID() {
+ return typeIndexID;
+ }
+
+ private final Object[] theArray;
+
+ // never called. Here to disable default constructor
+ @SuppressWarnings("unused")
+ private JavaObjectArray() {
+ theArray = null;
+ }
+
+ /**
+ * Make a new FSArray of given size
+ * @param jcas The JCas
+ * @param length The number of elements in the new array
+ */
+ public JavaObjectArray(JCas jcas, int length) {
+ super(jcas);
+ theArray = new Object[length];
+ }
+
+ /**
+ * used by generator
+ * Make a new FSArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array
+ */
+ public JavaObjectArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ theArray = new Object[length];
+ }
+
+
+ /** return the indexed value from the corresponding Cas FSArray as a Java Model object. */
+ public Object get(int i) {
+ return theArray[i];
+ }
+
+ /** updates the Cas, setting the indexed value with the corresponding Cas FeatureStructure. */
+ public void set(int i, FeatureStructure v) {
+ theArray[i] = (FeatureStructureImplC) v;
+ }
+
+ /** return the size of the array. */
+ public int size() {
+ return theArray.length;
+ }
+
+ /**
+ * @see org.apache.uima.cas.ArrayFS#copyFromArray(FeatureStructure[], int, int, int)
+ */
+ public void copyFromArray(FeatureStructure[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
+ }
+
+ /**
+ * @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int, int)
+ */
+ public void copyToArray(int srcPos, FeatureStructure[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
+ }
+
+ /**
+ * @see org.apache.uima.cas.ArrayFS#toArray()
+ */
+ public Object[] toArray() {
+ return theArray.clone();
+ }
+
+ /**
+ * Not supported, will throw UnsupportedOperationException
+ */
+ public void copyFromArray(String[] src, int srcPos, int destPos, int length) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Copies an array of Feature Structures to an Array of Strings.
+ * The strings are the "toString()" representation of the feature structures,
+ *
+ * @param srcPos
+ * The index of the first element to copy.
+ * @param dest
+ * The array to copy to.
+ * @param destPos
+ * Where to start copying into <code>dest</code>.
+ * @param length
+ * The number of elements to copy.
+ * @exception ArrayIndexOutOfBoundsException
+ * If <code>srcPos < 0</code> or
+ * <code>length > size()</code> or
+ * <code>destPos + length > destArray.length</code>.
+ */
+ public void copyToArray(int srcPos, String[] dest, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
+ for (int i = 0; i < length; i++) {
+ dest[i + destPos] = theArray[i + srcPos].toString();
+ }
+ }
+
+ public String[] toStringArray() {
+ final int size = size();
+ String[] strArray = new String[size];
+ copyToArray(0, strArray, 0, size);
+ return strArray;
+ }
+
+ // internal use
+ public Object[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ JavaObjectArray bv = (JavaObjectArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
+}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray.java Mon Nov 2 12:19:46 2015
@@ -20,11 +20,13 @@
package org.apache.uima.jcas.cas;
import org.apache.uima.cas.LongArrayFS;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JCasRegistry;
/** JCas class model for LongArray */
-public final class LongArray extends TOP implements LongArrayFS {
+public final class LongArray extends TOP implements CommonPrimitiveArray, LongArrayFS {
/**
* Each cover class when loaded sets an index. Used in the JCas typeArray to go from the cover
* class or class instance to the corresponding instance of the _Type class
@@ -43,13 +45,11 @@ public final class LongArray extends TOP
return typeIndexID;
}
+ private final long[] theArray;
// never called. Here to disable default constructor
+ @SuppressWarnings("unused")
private LongArray() {
- }
-
- /* Internal - Constructor used by generator */
- public LongArray(int addr, TOP_Type type) {
- super(addr, type);
+ theArray = null;
}
/**
@@ -58,79 +58,80 @@ public final class LongArray extends TOP
* @param length The number of elements in the new array
*/
public LongArray(JCas jcas, int length) {
- this(jcas.getLowLevelCas().ll_createLongArray(length), jcas.getType(typeIndexID));
+ super(jcas);
+ theArray = new long[length];
}
/**
+ * used by generator
+ * Make a new LongArray of given size
+ * @param c -
+ * @param t -
+ * @param length the length of the array in bytes
+ */
+ public LongArray(TypeImpl t, CASImpl c, int length) {
+ super(t, c);
+ theArray = new long[length];
+ }
+
+ /**
* @see org.apache.uima.cas.LongArrayFS#get(int)
*/
public long get(int i) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- return jcasType.ll_cas.ll_getLongArrayValue(addr, i);
+ return theArray[i];
}
/**
* @see org.apache.uima.cas.LongArrayFS#set(int , long)
*/
public void set(int i, long v) {
- jcasType.casImpl.checkArrayBounds(addr, i);
- jcasType.ll_cas.ll_setLongArrayValue(addr, i, v);
+ theArray[i] = v;
+ _casView.maybeLogArrayUpdate(this, null, i);
}
/**
* @see org.apache.uima.cas.LongArrayFS#copyFromArray(long[], int, int, int)
*/
- public void copyFromArray(long[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
- for (int i = 0; i < length; i++) {
- jcasType.ll_cas.ll_setLongArrayValue(addr, i + destOffset, src[i + srcOffset]);
- }
+ public void copyFromArray(long[] src, int srcPos, int destPos, int length) {
+ System.arraycopy(src, srcPos, theArray, destPos, length);
}
/**
* @see org.apache.uima.cas.LongArrayFS#copyToArray(int, long[], int, int)
*/
- public void copyToArray(int srcOffset, long[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
- for (int i = 0; i < length; i++) {
- dest[i + destOffset] = jcasType.ll_cas.ll_getLongArrayValue(addr, i + srcOffset);
- }
+ public void copyToArray(int srcPos, long[] dest, int destPos, int length) {
+ System.arraycopy(theArray, srcPos, dest, destPos, length);
}
/**
* @see org.apache.uima.cas.LongArrayFS#toArray()
*/
public long[] toArray() {
- final int size = size();
- long[] outArray = new long[size];
- copyToArray(0, outArray, 0, size);
- return outArray;
+ return theArray.clone();
}
/** return the size of the array */
public int size() {
- return jcasType.casImpl.ll_getArraySize(addr);
+ return theArray.length;
}
/**
* @see org.apache.uima.cas.LongArrayFS#copyToArray(int, String[], int, int)
*/
- public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, srcOffset, length);
+ public void copyToArray(int srcPos, String[] dest, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, srcPos, length);
for (int i = 0; i < length; i++) {
- dest[i + destOffset] = Long.toString(jcasType.ll_cas
- .ll_getLongArrayValue(addr, i + srcOffset));
+ dest[i + destPos] = Long.toString(theArray[i + srcPos]);
}
}
/**
* @see org.apache.uima.cas.LongArrayFS#copyFromArray(String[], int, int, int)
*/
- public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
- jcasType.casImpl.checkArrayBounds(addr, destOffset, length);
+ public void copyFromArray(String[] src, int srcPos, int destPos, int length) {
+ _casView.checkArrayBounds(theArray.length, destPos, length);
for (int i = 0; i < length; i++) {
- jcasType.ll_cas
- .ll_setLongArrayValue(addr, i + destOffset, Long.parseLong(src[i + srcOffset]));
+ theArray[i + destPos] = Long.parseLong(src[i + srcPos]);
}
}
@@ -140,4 +141,19 @@ public final class LongArray extends TOP
copyToArray(0, strArray, 0, size);
return strArray;
}
+
+ // internal use
+ public long[] _getTheArray() {
+ return theArray;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.jcas.cas.CommonArray#copyValuesFrom(org.apache.uima.jcas.cas.CommonArray)
+ */
+ @Override
+ public void copyValuesFrom(CommonArray v) {
+ LongArray bv = (LongArray) v;
+ System.arraycopy(bv.theArray, 0, theArray, 0, theArray.length);
+ }
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,14 @@
package org.apache.uima.jcas.cas;
+import org.apache.uima.cas.CAS;
+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.JCasRegistry;
-public class NonEmptyFSList extends FSList {
+public class NonEmptyFSList extends FSList implements NonEmptyList {
public final static int typeIndexID = JCasRegistry.register(NonEmptyFSList.class);
@@ -32,52 +36,69 @@ public class NonEmptyFSList extends FSLi
return typeIndexID;
}
+ // Offsets to use in accessing features
+ // For built-ins, these are static constants
+
+ private final static int head_featCode;
+ private final static int tail_featCode;
+
+ static {
+ TypeSystemImpl tsi = TypeSystemImpl.staticTsi;
+ TypeImpl listType = tsi.getType(CAS.TYPE_NAME_NON_EMPTY_FS_LIST);
+
+ // makes assumption that all uima lists have the same head/tail offsets
+ head_featCode = listType.getFeatureByBaseName(CAS.FEATURE_BASE_NAME_HEAD).getCode();
+ tail_featCode = listType.getFeatureByBaseName(CAS.FEATURE_BASE_NAME_TAIL).getCode();
+ }
+
+ /* local data */
+ private TOP _F_head;
+ private FSList _F_tail;
+
// Never called. Disable default constructor
protected NonEmptyFSList() {
}
- /* Internal - Constructor used by generator */
- public NonEmptyFSList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public NonEmptyFSList(JCas jcas) {
super(jcas);
}
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public NonEmptyFSList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
// *------------------*
// * Feature: head
/* getter for head * */
- public org.apache.uima.jcas.cas.TOP getHead() {
- if (NonEmptyFSList_Type.featOkTst && ((NonEmptyFSList_Type) jcasType).casFeat_head == null)
- this.jcasType.jcas.throwFeatMissing("head", "uima.cas.NonEmptyFSList");
- return (org.apache.uima.jcas.cas.TOP) (jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas
- .ll_getRefValue(addr, ((NonEmptyFSList_Type) jcasType).casFeatCode_head)));
- }
+ public TOP getHead() { return _F_head; }
/* setter for head * */
- public void setHead(org.apache.uima.jcas.cas.TOP v) {
- if (NonEmptyFSList_Type.featOkTst && ((NonEmptyFSList_Type) jcasType).casFeat_head == null)
- this.jcasType.jcas.throwFeatMissing("head", "uima.cas.NonEmptyFSList");
- jcasType.ll_cas.ll_setRefValue(addr, ((NonEmptyFSList_Type) jcasType).casFeatCode_head,
- jcasType.ll_cas.ll_getFSRef(v));
+ public void setHead(TOP v) {
+ _F_head = v;
+ // no corruption check - can't be a key
+ _casView.maybeLogUpdate(this, head_featCode);
}
// *------------------*
// * Feature: tail
/* getter for tail * */
- public FSList getTail() {
- if (NonEmptyFSList_Type.featOkTst && ((NonEmptyFSList_Type) jcasType).casFeat_tail == null)
- this.jcasType.jcas.throwFeatMissing("tail", "uima.cas.NonEmptyFSList");
- return (FSList) (jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr,
- ((NonEmptyFSList_Type) jcasType).casFeatCode_tail)));
- }
+ public FSList getTail() { return _F_tail; }
/* setter for tail * */
- public void setTail(FSList v) {
- if (NonEmptyFSList_Type.featOkTst && ((NonEmptyFSList_Type) jcasType).casFeat_tail == null)
- this.jcasType.jcas.throwFeatMissing("tail", "uima.cas.NonEmptyFSList");
- jcasType.ll_cas.ll_setRefValue(addr, ((NonEmptyFSList_Type) jcasType).casFeatCode_tail,
- jcasType.ll_cas.ll_getFSRef(v));
+ public void setTail(CommonList v) {
+ _F_tail = (FSList) v;
+ // no corruption check - can't be a key
+ _casView.maybeLogUpdate(this, tail_featCode);
+ }
+
+ public TOP getNthElement(int i) {
+ return ((NonEmptyFSList)getNonEmptyNthNode(i)).getHead();
}
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,14 @@
package org.apache.uima.jcas.cas;
+import org.apache.uima.cas.CAS;
+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.JCasRegistry;
-public class NonEmptyFloatList extends FloatList {
+public class NonEmptyFloatList extends FloatList implements NonEmptyList {
public final static int typeIndexID = JCasRegistry.register(NonEmptyFloatList.class);
@@ -32,55 +36,67 @@ public class NonEmptyFloatList extends F
return typeIndexID;
}
+ // Offsets to use in accessing features
+ // For built-ins, these are static constants
+
+ private final static int head_featCode;
+ private final static int tail_featCode;
+
+ static {
+ TypeSystemImpl tsi = TypeSystemImpl.staticTsi;
+ TypeImpl listType = tsi.getType(CAS.TYPE_NAME_NON_EMPTY_FLOAT_LIST);
+
+ // makes assumption that all uima lists have the same head/tail offsets
+ head_featCode = listType.getFeatureByBaseName(CAS.FEATURE_BASE_NAME_HEAD).getCode();
+ tail_featCode = listType.getFeatureByBaseName(CAS.FEATURE_BASE_NAME_TAIL).getCode();
+ }
+
+ /* local data */
+ private float _F_head;
+ private FloatList _F_tail;
+
// Never called. Disable default constructor
protected NonEmptyFloatList() {
}
- /* Internal - Constructor used by generator */
- public NonEmptyFloatList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public NonEmptyFloatList(JCas jcas) {
super(jcas);
}
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public NonEmptyFloatList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
// *------------------*
// * Feature: head
/* getter for head * */
- public float getHead() {
- if (NonEmptyFloatList_Type.featOkTst
- && ((NonEmptyFloatList_Type) jcasType).casFeat_head == null)
- this.jcasType.jcas.throwFeatMissing("head", "uima.cas.NonEmptyFloatList");
- return jcasType.ll_cas.ll_getFloatValue(addr,
- ((NonEmptyFloatList_Type) jcasType).casFeatCode_head);
- }
+ public float getHead() { return _F_head; }
/* setter for head * */
public void setHead(float v) {
- if (NonEmptyFloatList_Type.featOkTst
- && ((NonEmptyFloatList_Type) jcasType).casFeat_head == null)
- this.jcasType.jcas.throwFeatMissing("head", "uima.cas.NonEmptyFloatList");
- jcasType.ll_cas.ll_setFloatValue(addr, ((NonEmptyFloatList_Type) jcasType).casFeatCode_head, v);
+ _F_head = v;
+ // no corruption check - a list element can't be a key
+ _casView.maybeLogUpdate(this, head_featCode);
}
// *------------------*
// * Feature: tail
/* getter for tail * */
- public FloatList getTail() {
- if (NonEmptyFloatList_Type.featOkTst
- && ((NonEmptyFloatList_Type) jcasType).casFeat_tail == null)
- this.jcasType.jcas.throwFeatMissing("tail", "uima.cas.NonEmptyFloatList");
- return (FloatList) (jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr,
- ((NonEmptyFloatList_Type) jcasType).casFeatCode_tail)));
- }
+ public FloatList getTail() { return _F_tail; }
/* setter for tail * */
- public void setTail(FloatList v) {
- if (NonEmptyFloatList_Type.featOkTst
- && ((NonEmptyFloatList_Type) jcasType).casFeat_tail == null)
- this.jcasType.jcas.throwFeatMissing("tail", "uima.cas.NonEmptyFloatList");
- jcasType.ll_cas.ll_setRefValue(addr, ((NonEmptyFloatList_Type) jcasType).casFeatCode_tail,
- jcasType.ll_cas.ll_getFSRef(v));
+ @Override
+ public void setTail(CommonList v) {
+ _F_tail = (FloatList) v;
+ // no corruption check - can't be a key
+ _casView.maybeLogUpdate(this, tail_featCode);
}
+
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java?rev=1711942&r1=1711941&r2=1711942&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java Mon Nov 2 12:19:46 2015
@@ -19,10 +19,16 @@
package org.apache.uima.jcas.cas;
+import java.util.List;
+
+import org.apache.uima.cas.CAS;
+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.JCasRegistry;
-public class NonEmptyIntegerList extends IntegerList {
+public class NonEmptyIntegerList extends IntegerList implements NonEmptyList {
public final static int typeIndexID = JCasRegistry.register(NonEmptyIntegerList.class);
@@ -31,56 +37,73 @@ public class NonEmptyIntegerList extends
public int getTypeIndexID() {
return typeIndexID;
}
-
+
+ // Offsets to use in accessing features
+ // For built-ins, these are static constants
+
+ private final static int head_featCode;
+ private final static int tail_featCode;
+
+ static {
+ TypeSystemImpl tsi = TypeSystemImpl.staticTsi;
+ TypeImpl listType = tsi.getType(CAS.TYPE_NAME_NON_EMPTY_INTEGER_LIST);
+
+ // makes assumption that all uima lists have the same head/tail offsets
+ head_featCode = listType.getFeatureByBaseName(CAS.FEATURE_BASE_NAME_HEAD).getCode();
+ tail_featCode = listType.getFeatureByBaseName(CAS.FEATURE_BASE_NAME_TAIL).getCode();
+ }
+
+ /* local data */
+ private int _F_head;
+ private IntegerList _F_tail;
+
// Never called. Disable default constructor
protected NonEmptyIntegerList() {
}
- /* Internal - Constructor used by generator */
- public NonEmptyIntegerList(int addr, TOP_Type type) {
- super(addr, type);
- }
-
public NonEmptyIntegerList(JCas jcas) {
super(jcas);
}
+
+ /**
+ * used by generator
+ * Make a new AnnotationBase
+ * @param c -
+ * @param t -
+ */
+
+ public NonEmptyIntegerList(TypeImpl t, CASImpl c) {
+ super(t, c);
+ }
+
// *------------------*
// * Feature: head
/* getter for head * */
- public int getHead() {
- if (NonEmptyIntegerList_Type.featOkTst
- && ((NonEmptyIntegerList_Type) jcasType).casFeat_head == null)
- this.jcasType.jcas.throwFeatMissing("head", "uima.cas.NonEmptyIntegerList");
- return jcasType.ll_cas.ll_getIntValue(addr,
- ((NonEmptyIntegerList_Type) jcasType).casFeatCode_head);
- }
+ public int getHead() { return _F_head; }
/* setter for head * */
public void setHead(int v) {
- if (NonEmptyIntegerList_Type.featOkTst
- && ((NonEmptyIntegerList_Type) jcasType).casFeat_head == null)
- this.jcasType.jcas.throwFeatMissing("head", "uima.cas.NonEmptyIntegerList");
- jcasType.ll_cas.ll_setIntValue(addr, ((NonEmptyIntegerList_Type) jcasType).casFeatCode_head, v);
+ _F_head = v;
+ // no corruption check - can't be a key
+ _casView.maybeLogUpdate(this, head_featCode);
}
-
+
// *------------------*
// * Feature: tail
/* getter for tail * */
- public IntegerList getTail() {
- if (NonEmptyIntegerList_Type.featOkTst
- && ((NonEmptyIntegerList_Type) jcasType).casFeat_tail == null)
- this.jcasType.jcas.throwFeatMissing("tail", "uima.cas.NonEmptyIntegerList");
- return (IntegerList) (jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr,
- ((NonEmptyIntegerList_Type) jcasType).casFeatCode_tail)));
- }
+ public IntegerList getTail() { return _F_tail; }
/* setter for tail * */
- public void setTail(IntegerList v) {
- if (NonEmptyIntegerList_Type.featOkTst
- && ((NonEmptyIntegerList_Type) jcasType).casFeat_tail == null)
- this.jcasType.jcas.throwFeatMissing("tail", "uima.cas.NonEmptyIntegerList");
- jcasType.ll_cas.ll_setRefValue(addr, ((NonEmptyIntegerList_Type) jcasType).casFeatCode_tail,
- jcasType.ll_cas.ll_getFSRef(v));
+ public void setTail(CommonList v) {
+ assert(v instanceof IntegerList);
+ _F_tail = (IntegerList) v;
+ // no corruption check - can't be a key
+ _casView.maybeLogUpdate(this, tail_featCode);
+ }
+
+ public void setHead(List<String> stringValues, int i) {
+ setHead(Integer.parseInt(stringValues.get(i)));
}
+
}
Added: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyList.java?rev=1711942&view=auto
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyList.java (added)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyList.java Mon Nov 2 12:19:46 2015
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.jcas.cas;
+
+/**
+ * a marker interface for nonempty lists
+ */
+public interface NonEmptyList {
+ CommonList getTail();
+}