You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by tw...@apache.org on 2007/09/07 15:35:57 UTC
svn commit: r573579 - in /incubator/uima/uimaj/trunk/uimaj-core/src:
main/java/org/apache/uima/cas/ main/java/org/apache/uima/cas/impl/
main/java/org/apache/uima/jcas/cas/ test/java/org/apache/uima/cas/test/
Author: twgoetz
Date: Fri Sep 7 06:35:56 2007
New Revision: 573579
URL: http://svn.apache.org/viewvc?rev=573579&view=rev
Log:
Jira UIMA-301: make CommonArrayFS super-interface for all CAS array interfaces.
https://issues.apache.org/jira/browse/UIMA-301
Modified:
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/StringArrayFS.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSImpl.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonArrayFSImpl.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java
incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/ArrayFSTest.java
incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/StringArrayTest.java
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/ArrayFS.java Fri Sep 7 06:35:56 2007
@@ -25,7 +25,7 @@
*
*
*/
-public interface ArrayFS extends FeatureStructure {
+public interface ArrayFS extends CommonArrayFS {
/**
* Return the size of the array.
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/StringArrayFS.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/StringArrayFS.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/StringArrayFS.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/StringArrayFS.java Fri Sep 7 06:35:56 2007
@@ -25,7 +25,7 @@
*
*
*/
-public interface StringArrayFS extends FeatureStructure {
+public interface StringArrayFS extends CommonArrayFS {
/**
* Return the size of the array.
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSImpl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSImpl.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSImpl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSImpl.java Fri Sep 7 06:35:56 2007
@@ -27,9 +27,10 @@
*
*
*/
-public class ArrayFSImpl extends FeatureStructureImplC implements ArrayFS {
+public class ArrayFSImpl extends CommonArrayFSImpl implements ArrayFS {
private ArrayFSImpl() {
+ super();
// not used
}
@@ -62,10 +63,11 @@
}
/**
- * @see org.apache.uima.cas.ArrayFS#copyFromArray(FeatureStructure[], int, int, int)
+ * @see org.apache.uima.cas.ArrayFS#copyFromArray(FeatureStructure[], int,
+ * int, int)
*/
public void copyFromArray(FeatureStructure[] src, int srcOffset, int destOffset, int length)
- throws ArrayIndexOutOfBoundsException {
+ throws ArrayIndexOutOfBoundsException {
if ((destOffset < 0) || ((destOffset + length) > size())) {
throw new ArrayIndexOutOfBoundsException();
}
@@ -80,10 +82,11 @@
}
/**
- * @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int, int)
+ * @see org.apache.uima.cas.ArrayFS#copyToArray(int, FeatureStructure[], int,
+ * int)
*/
public void copyToArray(int srcOffset, FeatureStructure[] dest, int destOffset, int length)
- throws ArrayIndexOutOfBoundsException {
+ throws ArrayIndexOutOfBoundsException {
if ((srcOffset < 0) || ((srcOffset + length) > size())) {
throw new ArrayIndexOutOfBoundsException();
}
@@ -103,6 +106,22 @@
FeatureStructure[] outArray = new FeatureStructure[size];
copyToArray(0, outArray, 0, size);
return outArray;
+ }
+
+ public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
+ if ((srcOffset < 0) || ((srcOffset + length) > size())) {
+ throw new ArrayIndexOutOfBoundsException();
+ }
+ final int max = srcOffset + length;
+ int valueAddr;
+ for (int i = srcOffset; i < max; i++) {
+ valueAddr = this.casImpl.ll_getRefArrayValue(this.addr, i);
+ dest[i] = this.casImpl.ll_getFSForRef(valueAddr).toString();
+ }
+ }
+
+ public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
+ throw new UnsupportedOperationException();
}
}
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonArrayFSImpl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonArrayFSImpl.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonArrayFSImpl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonArrayFSImpl.java Fri Sep 7 06:35:56 2007
@@ -26,6 +26,7 @@
public abstract class CommonArrayFSImpl extends FeatureStructureImplC {
protected CommonArrayFSImpl() {
+ super();
}
protected CommonArrayFSImpl(CASImpl cas, int addr) {
@@ -33,7 +34,7 @@
}
public int size() {
- return casImpl.ll_getArraySize(addr);
+ return this.casImpl.ll_getArraySize(this.addr);
}
public abstract void copyToArray(int srcOffset, String[] dest, int destOffset, int length);
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java Fri Sep 7 06:35:56 2007
@@ -27,7 +27,7 @@
*
*
*/
-public class StringArrayFSImpl extends FeatureStructureImplC implements StringArrayFS {
+public class StringArrayFSImpl extends CommonArrayFSImpl implements StringArrayFS {
private static class StringArrayGenerator implements FSGenerator {
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java Fri Sep 7 06:35:56 2007
@@ -127,4 +127,23 @@
return outArray;
}
+ public void copyFromArray(String[] src, int srcOffset, int destOffset, int length)
+ throws ArrayIndexOutOfBoundsException, NumberFormatException {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void copyToArray(int srcOffset, String[] dest, int destOffset, int length)
+ throws ArrayIndexOutOfBoundsException {
+ // TODO Auto-generated method stub
+
+ }
+
+ public String[] toStringArray() {
+ final int size = size();
+ String[] strArray = new String[size];
+ copyToArray(0, strArray, 0, size);
+ return strArray;
+ }
+
}
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java Fri Sep 7 06:35:56 2007
@@ -110,4 +110,11 @@
public int size() {
return jcasType.casImpl.ll_getArraySize(addr);
}
+
+ public String[] toStringArray() {
+ final int size = size();
+ String[] strArray = new String[size];
+ copyToArray(0, strArray, 0, size);
+ return strArray;
+ }
}
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/ArrayFSTest.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/ArrayFSTest.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/ArrayFSTest.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/ArrayFSTest.java Fri Sep 7 06:35:56 2007
@@ -75,6 +75,7 @@
}
assertTrue(exceptionCaught);
ArrayFS array = this.cas.createArrayFS(0);
+ assertTrue(array.size() == 0);
assertTrue(array != null);
assertTrue(array.size() == 0);
exceptionCaught = false;
@@ -92,6 +93,11 @@
array.set(0, fs1);
array.set(1, fs2);
array.set(2, fs3);
+ String[] stringArray = array.toStringArray();
+ assertTrue(stringArray.length == 3);
+ for (int i = 0; i < array.size(); i++) {
+ assertNotNull(stringArray[i]);
+ }
} catch (ArrayIndexOutOfBoundsException e) {
assertTrue(false);
}
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/StringArrayTest.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/StringArrayTest.java?rev=573579&r1=573578&r2=573579&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/StringArrayTest.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/StringArrayTest.java Fri Sep 7 06:35:56 2007
@@ -84,6 +84,11 @@
} catch (ArrayIndexOutOfBoundsException e) {
assertTrue(false);
}
+ String[] stringArray = array.toStringArray();
+ assertTrue(array.size() == stringArray.length);
+ for (int i = 0; i < stringArray.length; i++) {
+ assertTrue(stringArray[i].equals(array.get(i)));
+ }
exceptionCaught = false;
try {
array.set(-1, "1");