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 2014/11/02 22:17:34 UTC

svn commit: r1636198 [1/3] - in /uima/uimaj/trunk: uima-docbook-references/src/docbook/ uimaj-json/src/main/java/org/apache/uima/json/ uimaj-json/src/test/java/org/apache/uima/json/ uimaj-json/src/test/java/org/apache/uima/test/ uimaj-json/src/test/res...

Author: schor
Date: Sun Nov  2 21:17:33 2014
New Revision: 1636198

URL: http://svn.apache.org/r1636198
Log:
[UIMA-4083][UIMA-4082] fix serialization issue with FSs that are both ref'd and indexed, and add tests.  Change serialization format for @views to use the ViewName as the key, instead of the corresponding Sofa Xmi Id. 

Added:
    uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/
    uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java
    uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/AllTypes_Type.java
    uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/RefTypes.java
    uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/RefTypes_Type.java
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/desc/refTypes.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/indexedAndRef.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/indexedAndRefEmbed.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/indexedAndRef.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/indexedAndRefEmbed.xml
Modified:
    uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.json.xml
    uima/uimaj/trunk/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java
    uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/json/JsonCasSerializerTest.java
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/desc/allTypes.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/allValuesNoOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/allValuesOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/allValuesStaticNoOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/indexedSingleList.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/indexedSingleListStatic.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/multipleViews.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollision.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollision2.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollision2Omits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollision2pp.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollision2ppOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollisionOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceCollsionFiltered.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/nameSpaceNoCollsionFiltered.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topAndTokenOnly.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topAndTokenOnlyNoContext.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topAndTokenOnlyNoExpandedTypeNames.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topAndTokenOnlyNoSubtypes.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topExpandedNamesNoViews.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topNoContext.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topNoExpandedTypeNames.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topWithDefaultViewOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/topWithNamedViewOmits.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/twoListMerge.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/json/twoListMergeStatic.txt
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/allValuesNoOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/allValuesOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/allValuesStaticNoOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/emptyCAS.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/indexedSingleList.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/indexedSingleListStatic.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/multipleViews.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollision.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollision2.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollision2Omits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollision2pp.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollision2ppOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollisionOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceCollsionFiltered.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/nameSpaceNoCollsionFiltered.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topAndTokenOnly.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topAndTokenOnlyNoContext.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topAndTokenOnlyNoExpandedTypeNames.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topAndTokenOnlyNoSubtypes.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topExpandedNamesNoViews.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topNoContext.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topNoExpandedTypeNames.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topWithDefaultViewOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/topWithNamedViewOmits.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/twoListMerge.xml
    uima/uimaj/trunk/uimaj-json/src/test/resources/CasSerialization/expected/xmi/twoListMergeStatic.xml

Modified: uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.json.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.json.xml?rev=1636198&r1=1636197&r2=1636198&view=diff
==============================================================================
--- uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.json.xml (original)
+++ uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.json.xml Sun Nov  2 21:17:33 2014
@@ -390,12 +390,12 @@ jcs.setJsonContext(JsonContextFormat.omi
     
               <informalexample>  <!-- does a keep-together -->
     <programlisting>"@views" : {
-  "12" : {
+  "_InitialView" : {
      "theFirstType" : [  { ... fs1 ...}, 123, 456, { ... fsn ...} ]
      "anotherType"  : [  { ... fs1 ...}, ... { ... fsn ...} ]
       ...     // more types which have roots in view "12"
          },
-  "25" : {
+  "AnotherView" : {
      "theFirstType" : [  { ... fsv1 ...}, 123, { ... fsvn ...} ]
      "anotherType"  : [  { ... fsv1 ...}, ... { ... fsvn ...} ]
       ...     // more types which have roots in view "25"

Modified: uima/uimaj/trunk/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java?rev=1636198&r1=1636197&r2=1636198&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java (original)
+++ uima/uimaj/trunk/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java Sun Nov  2 21:17:33 2014
@@ -479,7 +479,7 @@ public class JsonCasSerializer {
     
     private boolean isEmbedded = false; // true for embedded FSs, causes @type to be included
     
-    private boolean isEmbeddedFromFsFeature;  // used for NL formatting for this case
+    private boolean isEmbeddedFromFsFeature;  // used for NL formatting, false if embedded due to Array or List
 
     private boolean startedFeatureTypes;
     
@@ -550,7 +550,10 @@ public class JsonCasSerializer {
           continue;  // skip non-existent initial view with no sofa and no elements                    
         }
         jch.writeNlJustBeforeNext();
-        jg.writeFieldName(Integer.toString(sofaAddr));  // view sofa addr
+        String viewName = (0 == sofaAddr) ?  
+            CAS.NAME_DEFAULT_SOFA :
+            cds.cas.getStringValue(sofaAddr, cds.tsi.sofaIdFeatCode);
+        jg.writeFieldName(viewName);  // view namne
         jg.writeStartObject();
         for (Integer fs : fssInView) {
           cds.encodeFS(fs);
@@ -598,12 +601,11 @@ public class JsonCasSerializer {
     @Override
     protected void writeView(int sofaAddr, int[] members) throws IOException {
       jch.writeNlJustBeforeNext();
-      String xmiId = (0 == sofaAddr) ? "0" : cds.getXmiId(sofaAddr);
-      jg.writeArrayFieldStart(xmiId);
+      String sofaXmiId = (0 == sofaAddr) ? "0" : cds.getXmiId(sofaAddr);
+      jg.writeArrayFieldStart(sofaXmiId);
       writeViewMembers(members);
       //check for out-of-typesystem members
       if (cds.sharedData != null) {
-        String sofaXmiId = cds.getXmiId(sofaAddr);
         List<String> ootsMembers = cds.sharedData.getOutOfTypeSystemViewMembers(sofaXmiId);
         jch.writeNlJustBeforeNext();
         writeViewMembers(ootsMembers);
@@ -622,7 +624,7 @@ public class JsonCasSerializer {
     @Override
     protected void writeView(int sofaAddr, int[] added, int[] deleted, int[] reindexed) throws IOException {
       jch.writeNlJustBeforeNext();
-      jg.writeFieldName(Integer.toString(sofaAddr));
+      jg.writeFieldName(cds.getXmiId(sofaAddr));
       jg.writeStartObject();
       writeViewForDeltas(ADDED_MEMBERS_NAME, added);
       writeViewForDeltas(DELETED_MEMBERS_NAME, deleted);
@@ -885,7 +887,7 @@ public class JsonCasSerializer {
     }
     
     @Override
-    protected void writeFsStart(int addr, int typeCode) throws IOException {
+    protected boolean writeFsStart(int addr, int typeCode) throws IOException {
       if (isEmbedded) {
         if (!isEmbeddedFromFsFeature) {
           jch.writeNlJustBeforeNext();  // if from feature, already did nl
@@ -912,11 +914,22 @@ public class JsonCasSerializer {
           jg.writeFieldName(getSerializedTypeName(typeCode));
           jg.writeStartArray();
         }
-        jch.writeNlJustBeforeNext();
-        jg.writeStartObject();  // start of feat : value
+        // if we're not going to write the actual FS here, 
+        //   and are just going to write the ref, 
+        //   skip the start object
+        if (cds.multiRefFSs == null || !cds.multiRefFSs.contains(addr)) {         
+          jch.writeNlJustBeforeNext();
+          jg.writeStartObject();  // start of feat : value
+        }
       }
+      return indexId;
     }
     
+    @Override
+    protected void writeFsRef(int addr) throws Exception {
+       jg.writeNumber(cds.getXmiIdAsInt(addr));      
+    }    
+
 //    private void maybeWriteIdFeat(int addr) throws IOException {
 //      if (!omitId) {
 //        jg.writeFieldName(ID_NAME);
@@ -1346,7 +1359,8 @@ public class JsonCasSerializer {
       return (cds.multiRefFSs == null) ? 
                 (isListAsFSs || cds.isStaticMultiRef(featCode)) : 
                 cds.multiRefFSs.contains(addr);
-    }    
+    }
+
   }
 
 }

Modified: uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/json/JsonCasSerializerTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/json/JsonCasSerializerTest.java?rev=1636198&r1=1636197&r2=1636198&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/json/JsonCasSerializerTest.java (original)
+++ uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/json/JsonCasSerializerTest.java Sun Nov  2 21:17:33 2014
@@ -40,11 +40,14 @@ import org.apache.uima.cas.impl.TypeSyst
 import org.apache.uima.cas.impl.XmiCasSerializer;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.cas.ByteArray;
+import org.apache.uima.jcas.cas.FSArray;
 import org.apache.uima.jcas.cas.IntegerList;
 import org.apache.uima.jcas.cas.NonEmptyIntegerList;
 import org.apache.uima.json.JsonCasSerializer.JsonContextFormat;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.test.AllTypes;
+import org.apache.uima.test.RefTypes;
 import org.apache.uima.test.junit_extension.JUnitExtension;
 import org.apache.uima.util.CasCreationUtils;
 import org.apache.uima.util.FileUtils;
@@ -88,6 +91,10 @@ public class JsonCasSerializerTest exten
   private TypeImpl tokenType;
   private TypeImpl emptyIntListType;
   protected boolean doJson;
+  private FeatureStructure fsa1;    // elements of FS Array
+  private FeatureStructure fsa2;    // or just extra FS; these are not initially indexed
+  private FeatureStructure fsa3;
+  private FSArray fsaa;    // a feature structure array
  
   protected void setUp() throws Exception {
     jcs = new JsonCasSerializer();
@@ -141,62 +148,52 @@ public class JsonCasSerializerTest exten
     // also test including / excluding type-name-reference  
     
     setupTypeSystem("nameSpaceNeeded.xml");
-    String r = serialize();  // empty cas
-    compareWithExpected("emptyCAS.txt", r);
+    serializeAndCompare("emptyCAS.txt");  // empty cas
     
     cas.addFsToIndexes(cas.createFS(topType));
     cas.addFsToIndexes(cas.createFS(tokenType));
-    r = serialize();
-    compareWithExpected("topAndTokenOnly.txt", r);
+    serializeAndCompare("topAndTokenOnly.txt");
 
     
     // same thing, omitting context
     jcs.setJsonContext(JsonContextFormat.omitContext);
-    r = serialize();
-    compareWithExpected("topAndTokenOnlyNoContext.txt", r);
+    serializeAndCompare("topAndTokenOnlyNoContext.txt");
     
     jcs = new JsonCasSerializer();
     jcs.setJsonContext(JsonContextFormat.omitExpandedTypeNames);
-    r = serialize();
-    compareWithExpected("topAndTokenOnlyNoExpandedTypeNames.txt", r);
+    serializeAndCompare("topAndTokenOnlyNoExpandedTypeNames.txt");
     
     jcs = new JsonCasSerializer();
     jcs.setJsonContext(JsonContextFormat.omitSubtypes);
-    r = serialize();
-    compareWithExpected("topAndTokenOnlyNoSubtypes.txt", r);
+    serializeAndCompare("topAndTokenOnlyNoSubtypes.txt");
     
     
     
     
     cas = (CASImpl) cas.createView("basicView");
     cas.addFsToIndexes(cas.createFS(annotationType));
-    r = serialize();
-    compareWithExpected("topWithNamedViewOmits.txt", r);
+    serializeAndCompare("topWithNamedViewOmits.txt");
     cas.reset();
     
     cas = (CASImpl) cas.getCurrentView(); // default view
     cas.addFsToIndexes(cas.createFS(annotationType));
-    r = serialize();
-    compareWithExpected("topWithDefaultViewOmits.txt", r);
+    serializeAndCompare("topWithDefaultViewOmits.txt");
     
     cas.reset();
     jcs.setJsonContext(JsonContextFormat.omitContext);
     cas.addFsToIndexes(cas.createFS(topType));
-    r = serialize();
-    compareWithExpected("topNoContext.txt", r);
+    serializeAndCompare("topNoContext.txt");
         
     cas.reset();
     jcs = new JsonCasSerializer();
     jcs.setTypeSystemReference("A URI to TypeSystem");
     cas.addFsToIndexes(cas.createFS(topType));
-    r = serialize();
-    compareWithExpected("topExpandedNamesNoViews.txt", r);
+    serializeAndCompare("topExpandedNamesNoViews.txt");
 
     cas.reset();
     jcs.setJsonContext(JsonContextFormat.omitExpandedTypeNames);
     cas.addFsToIndexes(cas.createFS(topType));
-    r = serialize();
-    compareWithExpected("topNoExpandedTypeNames.txt", r);
+    serializeAndCompare("topNoExpandedTypeNames.txt");
 
   }
   
@@ -211,28 +208,22 @@ public class JsonCasSerializerTest exten
     cas.addFsToIndexes(cas.createFS(t2));
     cas.addFsToIndexes(cas.createFS(t3));
     
-    String r = serialize();
-    compareWithExpected("nameSpaceCollisionOmits.txt", r);
+    serializeAndCompare("nameSpaceCollisionOmits.txt");
     
     jcs.setOmitDefaultValues(false);
-    r = serialize();
-    compareWithExpected("nameSpaceCollision.txt", r);
+    serializeAndCompare("nameSpaceCollision.txt");
     
     cas.addFsToIndexes(cas.createFS(t3));
-    r = serialize();
-    compareWithExpected("nameSpaceCollision2.txt", r);
+    serializeAndCompare("nameSpaceCollision2.txt");
 
     jcs.setOmitDefaultValues(true);
-    r = serialize();
-    compareWithExpected("nameSpaceCollision2Omits.txt", r);
+    serializeAndCompare("nameSpaceCollision2Omits.txt");
 
     jcs.setPrettyPrint(true);
-    r = serialize();
-    compareWithExpected("nameSpaceCollision2ppOmits.txt", r);
+    serializeAndCompare("nameSpaceCollision2ppOmits.txt");
 
     jcs.setOmitDefaultValues(false);
-    r = serialize();
-    compareWithExpected("nameSpaceCollision2pp.txt", r);
+    serializeAndCompare("nameSpaceCollision2pp.txt");
     
     // filtering 
     TypeSystemMgr tsMgr = CASFactory.createTypeSystem();
@@ -242,8 +233,7 @@ public class JsonCasSerializerTest exten
     tsMgr.commit();
     jcs = new JsonCasSerializer();
     jcs.setFilterTypes((TypeSystemImpl) tsMgr);
-    r = serialize();
-    compareWithExpected("nameSpaceNoCollsionFiltered.txt", r);
+    serializeAndCompare("nameSpaceNoCollsionFiltered.txt");
     
     // filter, but not enough - should have 1 collison
     tsMgr = CASFactory.createTypeSystem();
@@ -253,8 +243,7 @@ public class JsonCasSerializerTest exten
     tsMgr.addType("org.apache.uimax.test.Token", a2t);
     tsMgr.commit();
     jcs.setFilterTypes((TypeSystemImpl) tsMgr);
-    r = serialize();
-    compareWithExpected("nameSpaceCollsionFiltered.txt", r);    
+    serializeAndCompare("nameSpaceCollsionFiltered.txt");    
     
   }
   
@@ -262,16 +251,13 @@ public class JsonCasSerializerTest exten
     setupTypeSystem("allTypes.xml");
     setAllValues(0);
     jcs.setPrettyPrint(true);
-    String r = serialize();
-    compareWithExpected("allValuesOmits.txt", r);
+    serializeAndCompare("allValuesOmits.txt");
     
     jcs.setOmitDefaultValues(false);
-    r = serialize();
-    compareWithExpected("allValuesNoOmits.txt", r);
+    serializeAndCompare("allValuesNoOmits.txt");
     
     jcs.setStaticEmbedding();
-    r = serialize();
-    compareWithExpected("allValuesStaticNoOmits.txt", r);
+    serializeAndCompare("allValuesStaticNoOmits.txt");
     
   }
   
@@ -282,8 +268,7 @@ public class JsonCasSerializerTest exten
     setAllValues(0);
 
     jcs.setPrettyPrint(true);
-    String r = serialize();
-    compareWithExpected("multipleViews.txt", r);
+    serializeAndCompare("multipleViews.txt");
         
   }
   public void testDynamicLists() throws Exception {
@@ -301,12 +286,10 @@ public class JsonCasSerializerTest exten
     jcas.addFsToIndexes(fss[4]);
    
     jcs.setPrettyPrint(true);
-    String r = serialize();
-    compareWithExpected("twoListMerge.txt", r);
+    serializeAndCompare("twoListMerge.txt");
     
     jcs.setStaticEmbedding();
-    r = serialize();
-    compareWithExpected("twoListMergeStatic.txt", r);
+    serializeAndCompare("twoListMergeStatic.txt");
    
     cas.reset();
     jcs = new JsonCasSerializer();
@@ -317,13 +300,47 @@ public class JsonCasSerializerTest exten
     fss[3] = intList(11, fss[2]);
 
     cas.addFsToIndexes(fss[3]);
-    r = serialize();
-    compareWithExpected("indexedSingleList.txt", r);
+    serializeAndCompare("indexedSingleList.txt");
     
     jcs.setStaticEmbedding();
-    r = serialize();
-    compareWithExpected("indexedSingleListStatic.txt", r);
+    serializeAndCompare("indexedSingleListStatic.txt");
+    
+  }
+  
+  /**
+   * Testing various cases
+   * 
+   * FS is both indexed, and is referenced
+   * 
+   * FS is referenced, and in turn references an embeddable item
+   * FS is referenced, and in turn references a shared item
+   * 
+   */
+  
+  public void testRefs() throws Exception {
+    setupTypeSystem("refTypes.xml");
+    jcs.setPrettyPrint(true);
+
+   
+    FeatureStructure[] fss = new FeatureStructure[20];
+    
+    //  make root FS that is indexed and has a ref 
+    RefTypes root = new RefTypes(jcas);
+    root.addToIndexes();
+    
+    RefTypes ref1 = new RefTypes(jcas);
+    ref1.addToIndexes();  // is both referenced and indexed
+
+    root.setAFS(ref1);
+    
+    serializeAndCompare("indexedAndRef.txt");
     
+    // have the indexed & ref'd item ref an embeddable
+    RefTypes ref2 = new RefTypes(jcas);
+    ref1.setAFS(ref2);
+    serializeAndCompare("indexedAndRefEmbed.txt");
+   
+ 
   }
 
   private FeatureStructure emptyIntList() {
@@ -382,6 +399,15 @@ public class JsonCasSerializerTest exten
     FeatureStructure fsAshort   = cas.createShortArrayFS(s2 ? 2 : 0);
     FeatureStructure fsAstring  = cas.createStringArrayFS(s1 ? 1 : 0);
     
+    fsa1 = cas.createFS(allTypesType);
+    fsa2 = cas.createFS(allTypesType);
+    fsa3 = cas.createFS(allTypesType);
+    
+    fsaa = new FSArray(jcas, 3);
+    fsaa.set(0, fsa1);
+    fsaa.set(1, fsa2);
+    fsaa.set(2, fsa3);;
+    
     FeatureStructure fsMrAboolean = cas.createBooleanArrayFS(1);
     FeatureStructure fsMrAbyte    = cas.createByteArrayFS(2);
     FeatureStructure fsMrAshort   = cas.createShortArrayFS(0);
@@ -456,7 +482,12 @@ public class JsonCasSerializerTest exten
     }
   }
   
-  private void compareWithExpected (String expectedResultsName, String r) throws IOException, SAXException {
+  private void serializeAndCompare(String expectedResultsName) throws Exception {
+    String r = serialize();
+    compareWithExpected(expectedResultsName, r);
+  }
+  
+  private void compareWithExpected(String expectedResultsName, String r) throws IOException, SAXException {
     r = canonicalizeNewLines(r);
     String expected = getExpected(expectedResultsName, r);
     String ce = canonicalizeNewLines(expected);

Added: uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java?rev=1636198&view=auto
==============================================================================
--- uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java (added)
+++ uima/uimaj/trunk/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java Sun Nov  2 21:17:33 2014
@@ -0,0 +1,813 @@
+
+
+/* First created by JCasGen Sat Nov 01 07:15:36 EDT 2014 */
+package org.apache.uima.test;
+
+import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCasRegistry;
+import org.apache.uima.jcas.cas.TOP_Type;
+
+import org.apache.uima.jcas.cas.FSList;
+import org.apache.uima.jcas.cas.FSArray;
+import org.apache.uima.jcas.cas.StringArray;
+import org.apache.uima.jcas.cas.StringList;
+import org.apache.uima.jcas.cas.IntegerList;
+import org.apache.uima.jcas.cas.ByteArray;
+import org.apache.uima.jcas.cas.ShortArray;
+import org.apache.uima.jcas.tcas.Annotation;
+import org.apache.uima.jcas.cas.BooleanArray;
+
+
+/** 
+ * Updated by JCasGen Sat Nov 01 07:15:36 EDT 2014
+ * XML source: C:/au/svnCheckouts/trunk/uimaj/uimaj-json/src/test/resources/CasSerialization/desc/allTypes.xml
+ * @generated */
+public class AllTypes extends Annotation {
+  /** @generated
+   * @ordered 
+   */
+  @SuppressWarnings ("hiding")
+  public final static int typeIndexID = JCasRegistry.register(AllTypes.class);
+  /** @generated
+   * @ordered 
+   */
+  @SuppressWarnings ("hiding")
+  public final static int type = typeIndexID;
+  /** @generated
+   * @return index of the type  
+   */
+  @Override
+  public              int getTypeIndexID() {return typeIndexID;}
+ 
+  /** Never called.  Disable default constructor
+   * @generated */
+  protected AllTypes() {/* intentionally empty block */}
+    
+  /** Internal - constructor used by generator 
+   * @generated
+   * @param addr low level Feature Structure reference
+   * @param type the type of this Feature Structure 
+   */
+  public AllTypes(int addr, TOP_Type type) {
+    super(addr, type);
+    readObject();
+  }
+  
+  /** @generated
+   * @param jcas JCas to which this Feature Structure belongs 
+   */
+  public AllTypes(JCas jcas) {
+    super(jcas);
+    readObject();   
+  } 
+
+  /** @generated
+   * @param jcas JCas to which this Feature Structure belongs
+   * @param begin offset to the begin spot in the SofA
+   * @param end offset to the end spot in the SofA 
+  */  
+  public AllTypes(JCas jcas, int begin, int end) {
+    super(jcas);
+    setBegin(begin);
+    setEnd(end);
+    readObject();
+  }   
+
+  /** 
+   * <!-- begin-user-doc -->
+   * Write your own initialization here
+   * <!-- end-user-doc -->
+   *
+   * @generated modifiable 
+   */
+  private void readObject() {/*default - does nothing empty block */}
+     
+ 
+    
+  //*--------------*
+  //* Feature: aBoolean
+
+  /** getter for aBoolean - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public boolean getABoolean() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aBoolean == null)
+      jcasType.jcas.throwFeatMissing("aBoolean", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getBooleanValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aBoolean);}
+    
+  /** setter for aBoolean - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setABoolean(boolean v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aBoolean == null)
+      jcasType.jcas.throwFeatMissing("aBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setBooleanValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aBoolean, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aByte
+
+  /** getter for aByte - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public byte getAByte() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aByte == null)
+      jcasType.jcas.throwFeatMissing("aByte", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getByteValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aByte);}
+    
+  /** setter for aByte - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAByte(byte v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aByte == null)
+      jcasType.jcas.throwFeatMissing("aByte", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setByteValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aByte, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aShort
+
+  /** getter for aShort - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public short getAShort() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aShort == null)
+      jcasType.jcas.throwFeatMissing("aShort", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getShortValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aShort);}
+    
+  /** setter for aShort - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAShort(short v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aShort == null)
+      jcasType.jcas.throwFeatMissing("aShort", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setShortValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aShort, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aInteger
+
+  /** getter for aInteger - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public int getAInteger() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aInteger == null)
+      jcasType.jcas.throwFeatMissing("aInteger", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getIntValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aInteger);}
+    
+  /** setter for aInteger - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAInteger(int v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aInteger == null)
+      jcasType.jcas.throwFeatMissing("aInteger", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setIntValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aInteger, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aLong
+
+  /** getter for aLong - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public long getALong() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aLong == null)
+      jcasType.jcas.throwFeatMissing("aLong", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getLongValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aLong);}
+    
+  /** setter for aLong - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setALong(long v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aLong == null)
+      jcasType.jcas.throwFeatMissing("aLong", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setLongValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aLong, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aFloat
+
+  /** getter for aFloat - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public float getAFloat() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aFloat == null)
+      jcasType.jcas.throwFeatMissing("aFloat", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getFloatValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aFloat);}
+    
+  /** setter for aFloat - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAFloat(float v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aFloat == null)
+      jcasType.jcas.throwFeatMissing("aFloat", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setFloatValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aFloat, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aDouble
+
+  /** getter for aDouble - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public double getADouble() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aDouble == null)
+      jcasType.jcas.throwFeatMissing("aDouble", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getDoubleValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aDouble);}
+    
+  /** setter for aDouble - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setADouble(double v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aDouble == null)
+      jcasType.jcas.throwFeatMissing("aDouble", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setDoubleValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aDouble, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aString
+
+  /** getter for aString - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public String getAString() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aString == null)
+      jcasType.jcas.throwFeatMissing("aString", "org.apache.uima.test.AllTypes");
+    return jcasType.ll_cas.ll_getStringValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aString);}
+    
+  /** setter for aString - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAString(String v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aString == null)
+      jcasType.jcas.throwFeatMissing("aString", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setStringValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aString, v);}    
+   
+    
+  //*--------------*
+  //* Feature: aFS
+
+  /** getter for aFS - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public Annotation getAFS() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aFS == null)
+      jcasType.jcas.throwFeatMissing("aFS", "org.apache.uima.test.AllTypes");
+    return (Annotation)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aFS)));}
+    
+  /** setter for aFS - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAFS(Annotation v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aFS == null)
+      jcasType.jcas.throwFeatMissing("aFS", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aFS, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aArrayBoolean
+
+  /** getter for aArrayBoolean - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public BooleanArray getAArrayBoolean() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayBoolean", "org.apache.uima.test.AllTypes");
+    return (BooleanArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayBoolean)));}
+    
+  /** setter for aArrayBoolean - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayBoolean(BooleanArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayBoolean, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayBoolean - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public boolean getAArrayBoolean(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayBoolean), i);
+    return jcasType.ll_cas.ll_getBooleanArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayBoolean), i);}
+
+  /** indexed setter for aArrayBoolean - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayBoolean(int i, boolean v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayBoolean), i);
+    jcasType.ll_cas.ll_setBooleanArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayBoolean), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayMrBoolean
+
+  /** getter for aArrayMrBoolean - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public BooleanArray getAArrayMrBoolean() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrBoolean", "org.apache.uima.test.AllTypes");
+    return (BooleanArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrBoolean)));}
+    
+  /** setter for aArrayMrBoolean - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayMrBoolean(BooleanArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrBoolean, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayMrBoolean - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public boolean getAArrayMrBoolean(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrBoolean), i);
+    return jcasType.ll_cas.ll_getBooleanArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrBoolean), i);}
+
+  /** indexed setter for aArrayMrBoolean - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayMrBoolean(int i, boolean v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrBoolean == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrBoolean", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrBoolean), i);
+    jcasType.ll_cas.ll_setBooleanArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrBoolean), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayMrByte
+
+  /** getter for aArrayMrByte - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public ByteArray getAArrayMrByte() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrByte", "org.apache.uima.test.AllTypes");
+    return (ByteArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrByte)));}
+    
+  /** setter for aArrayMrByte - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayMrByte(ByteArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrByte", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrByte, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayMrByte - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public byte getAArrayMrByte(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrByte", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrByte), i);
+    return jcasType.ll_cas.ll_getByteArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrByte), i);}
+
+  /** indexed setter for aArrayMrByte - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayMrByte(int i, byte v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrByte", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrByte), i);
+    jcasType.ll_cas.ll_setByteArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrByte), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayByte
+
+  /** getter for aArrayByte - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public ByteArray getAArrayByte() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayByte", "org.apache.uima.test.AllTypes");
+    return (ByteArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayByte)));}
+    
+  /** setter for aArrayByte - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayByte(ByteArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayByte", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayByte, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayByte - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public byte getAArrayByte(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayByte", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayByte), i);
+    return jcasType.ll_cas.ll_getByteArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayByte), i);}
+
+  /** indexed setter for aArrayByte - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayByte(int i, byte v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayByte == null)
+      jcasType.jcas.throwFeatMissing("aArrayByte", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayByte), i);
+    jcasType.ll_cas.ll_setByteArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayByte), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayShort
+
+  /** getter for aArrayShort - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public ShortArray getAArrayShort() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayShort", "org.apache.uima.test.AllTypes");
+    return (ShortArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayShort)));}
+    
+  /** setter for aArrayShort - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayShort(ShortArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayShort", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayShort, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayShort - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public short getAArrayShort(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayShort", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayShort), i);
+    return jcasType.ll_cas.ll_getShortArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayShort), i);}
+
+  /** indexed setter for aArrayShort - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayShort(int i, short v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayShort", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayShort), i);
+    jcasType.ll_cas.ll_setShortArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayShort), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayMrShort
+
+  /** getter for aArrayMrShort - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public ShortArray getAArrayMrShort() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrShort", "org.apache.uima.test.AllTypes");
+    return (ShortArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrShort)));}
+    
+  /** setter for aArrayMrShort - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayMrShort(ShortArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrShort", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrShort, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayMrShort - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public short getAArrayMrShort(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrShort", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrShort), i);
+    return jcasType.ll_cas.ll_getShortArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrShort), i);}
+
+  /** indexed setter for aArrayMrShort - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayMrShort(int i, short v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrShort == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrShort", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrShort), i);
+    jcasType.ll_cas.ll_setShortArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrShort), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayString
+
+  /** getter for aArrayString - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public StringArray getAArrayString() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayString == null)
+      jcasType.jcas.throwFeatMissing("aArrayString", "org.apache.uima.test.AllTypes");
+    return (StringArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayString)));}
+    
+  /** setter for aArrayString - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayString(StringArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayString == null)
+      jcasType.jcas.throwFeatMissing("aArrayString", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayString, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayString - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public String getAArrayString(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayString == null)
+      jcasType.jcas.throwFeatMissing("aArrayString", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayString), i);
+    return jcasType.ll_cas.ll_getStringArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayString), i);}
+
+  /** indexed setter for aArrayString - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayString(int i, String v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayString == null)
+      jcasType.jcas.throwFeatMissing("aArrayString", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayString), i);
+    jcasType.ll_cas.ll_setStringArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayString), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aArrayMrString
+
+  /** getter for aArrayMrString - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public StringArray getAArrayMrString() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrString == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrString", "org.apache.uima.test.AllTypes");
+    return (StringArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrString)));}
+    
+  /** setter for aArrayMrString - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayMrString(StringArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrString == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrString", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrString, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayMrString - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public String getAArrayMrString(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrString == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrString", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrString), i);
+    return jcasType.ll_cas.ll_getStringArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrString), i);}
+
+  /** indexed setter for aArrayMrString - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayMrString(int i, String v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayMrString == null)
+      jcasType.jcas.throwFeatMissing("aArrayMrString", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrString), i);
+    jcasType.ll_cas.ll_setStringArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayMrString), i, v);}
+   
+    
+  //*--------------*
+  //* Feature: aListInteger
+
+  /** getter for aListInteger - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public IntegerList getAListInteger() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListInteger == null)
+      jcasType.jcas.throwFeatMissing("aListInteger", "org.apache.uima.test.AllTypes");
+    return (IntegerList)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListInteger)));}
+    
+  /** setter for aListInteger - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAListInteger(IntegerList v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListInteger == null)
+      jcasType.jcas.throwFeatMissing("aListInteger", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListInteger, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aListMrInteger
+
+  /** getter for aListMrInteger - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public IntegerList getAListMrInteger() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListMrInteger == null)
+      jcasType.jcas.throwFeatMissing("aListMrInteger", "org.apache.uima.test.AllTypes");
+    return (IntegerList)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListMrInteger)));}
+    
+  /** setter for aListMrInteger - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAListMrInteger(IntegerList v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListMrInteger == null)
+      jcasType.jcas.throwFeatMissing("aListMrInteger", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListMrInteger, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aListString
+
+  /** getter for aListString - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public StringList getAListString() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListString == null)
+      jcasType.jcas.throwFeatMissing("aListString", "org.apache.uima.test.AllTypes");
+    return (StringList)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListString)));}
+    
+  /** setter for aListString - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAListString(StringList v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListString == null)
+      jcasType.jcas.throwFeatMissing("aListString", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListString, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aListMrString
+
+  /** getter for aListMrString - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public StringList getAListMrString() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListMrString == null)
+      jcasType.jcas.throwFeatMissing("aListMrString", "org.apache.uima.test.AllTypes");
+    return (StringList)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListMrString)));}
+    
+  /** setter for aListMrString - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAListMrString(StringList v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListMrString == null)
+      jcasType.jcas.throwFeatMissing("aListMrString", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListMrString, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aListFs
+
+  /** getter for aListFs - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public FSList getAListFs() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListFs == null)
+      jcasType.jcas.throwFeatMissing("aListFs", "org.apache.uima.test.AllTypes");
+    return (FSList)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListFs)));}
+    
+  /** setter for aListFs - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAListFs(FSList v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListFs == null)
+      jcasType.jcas.throwFeatMissing("aListFs", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListFs, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aListMrFs
+
+  /** getter for aListMrFs - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public FSList getAListMrFs() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListMrFs == null)
+      jcasType.jcas.throwFeatMissing("aListMrFs", "org.apache.uima.test.AllTypes");
+    return (FSList)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListMrFs)));}
+    
+  /** setter for aListMrFs - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAListMrFs(FSList v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aListMrFs == null)
+      jcasType.jcas.throwFeatMissing("aListMrFs", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aListMrFs, jcasType.ll_cas.ll_getFSRef(v));}    
+   
+    
+  //*--------------*
+  //* Feature: aArrayFS
+
+  /** getter for aArrayFS - gets 
+   * @generated
+   * @return value of the feature 
+   */
+  public FSArray getAArrayFS() {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayFS == null)
+      jcasType.jcas.throwFeatMissing("aArrayFS", "org.apache.uima.test.AllTypes");
+    return (FSArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayFS)));}
+    
+  /** setter for aArrayFS - sets  
+   * @generated
+   * @param v value to set into the feature 
+   */
+  public void setAArrayFS(FSArray v) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayFS == null)
+      jcasType.jcas.throwFeatMissing("aArrayFS", "org.apache.uima.test.AllTypes");
+    jcasType.ll_cas.ll_setRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayFS, jcasType.ll_cas.ll_getFSRef(v));}    
+    
+  /** indexed getter for aArrayFS - gets an indexed value - 
+   * @generated
+   * @param i index in the array to get
+   * @return value of the element at index i 
+   */
+  public Annotation getAArrayFS(int i) {
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayFS == null)
+      jcasType.jcas.throwFeatMissing("aArrayFS", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayFS), i);
+    return (Annotation)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayFS), i)));}
+
+  /** indexed setter for aArrayFS - sets an indexed value - 
+   * @generated
+   * @param i index in the array to set
+   * @param v value to set into the array 
+   */
+  public void setAArrayFS(int i, Annotation v) { 
+    if (AllTypes_Type.featOkTst && ((AllTypes_Type)jcasType).casFeat_aArrayFS == null)
+      jcasType.jcas.throwFeatMissing("aArrayFS", "org.apache.uima.test.AllTypes");
+    jcasType.jcas.checkArrayBounds(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayFS), i);
+    jcasType.ll_cas.ll_setRefArrayValue(jcasType.ll_cas.ll_getRefValue(addr, ((AllTypes_Type)jcasType).casFeatCode_aArrayFS), i, jcasType.ll_cas.ll_getFSRef(v));}
+  }
+
+    
\ No newline at end of file