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 2007/12/04 21:06:05 UTC

svn commit: r601067 - in /incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima: cas/impl/ArrayFSImpl.java jcas/cas/FSArray.java

Author: schor
Date: Tue Dec  4 12:06:02 2007
New Revision: 601067

URL: http://svn.apache.org/viewvc?rev=601067&view=rev
Log:
[UIMA-301] Fix ArrayFSImpl to account for destination offset, and implement stub in JCas version.

Modified:
    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/jcas/cas/FSArray.java

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=601067&r1=601066&r2=601067&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 Tue Dec  4 12:06:02 2007
@@ -109,14 +109,10 @@
   }
 
   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();
+    final CASImpl ll = this.casImpl;
+    ll.checkArrayBounds(this.addr, srcOffset, length);
+    for (int i = 0; i < length; i++) {
+      dest[i + destOffset] = ll.ll_getFSForRef(ll.ll_getRefArrayValue(this.addr, i + srcOffset)).toString();
     }
   }
 

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=601067&r1=601066&r2=601067&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 Tue Dec  4 12:06:02 2007
@@ -21,6 +21,7 @@
 
 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.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
@@ -127,16 +128,17 @@
     return outArray;
   }
 
-  public void copyFromArray(String[] src, int srcOffset, int destOffset, int length)
-      throws ArrayIndexOutOfBoundsException, NumberFormatException {
-    // TODO Auto-generated method stub
-    
+  public void copyFromArray(String[] src, int srcOffset, int destOffset, int length) {
+    throw new UnsupportedOperationException();
   }
-
-  public void copyToArray(int srcOffset, String[] dest, int destOffset, int length)
-      throws ArrayIndexOutOfBoundsException {
-    // TODO Auto-generated method stub
     
+
+  public void copyToArray(int srcOffset, String[] dest, int destOffset, int length) {
+    CASImpl ll = jcasType.casImpl;
+    ll.checkArrayBounds(addr, srcOffset, length);
+    for (int i = 0; i < length; i++) {
+      dest[i + destOffset] = ll.ll_getFSForRef(ll.ll_getRefArrayValue(this.addr, i + srcOffset)).toString();
+    }
   }
 
   public String[] toStringArray() {