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/03/23 23:17:49 UTC

svn commit: r1668751 [1/2] - in /uima/uimaj/trunk/uimaj-core: ./ src/main/java/org/apache/uima/cas/ src/main/java/org/apache/uima/cas/impl/ src/main/java/org/apache/uima/impl/ src/main/java/org/apache/uima/jcas/ src/main/java/org/apache/uima/jcas/cas/ ...

Author: schor
Date: Mon Mar 23 22:17:47 2015
New Revision: 1668751

URL: http://svn.apache.org/r1668751
Log:
[UIMA-4299] More fixes to generics for UIMA Indexes and Iterators and JCas cover classes, mostly found by running mvn compile, and turning on -Xlint:unchecked.

Modified:
    uima/uimaj/trunk/uimaj-core/pom.xml
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIndexRepository.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationBaseImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSGenerator.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BooleanArrayFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ByteArrayFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/DoubleArrayFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSGenerator.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIntArrayIndex.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIteratorWrapper.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/IntArrayFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongArrayFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelCAS.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SofaFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/Util.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCasRegistry.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JFSIndexRepository.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ShortArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/TOP_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasHashMap.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JFSIndexRepositoryImpl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation_Type.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/MetaDataObject_impl.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorityList_impl.java
    uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java

Modified: uima/uimaj/trunk/uimaj-core/pom.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/pom.xml?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/pom.xml (original)
+++ uima/uimaj/trunk/uimaj-core/pom.xml Mon Mar 23 22:17:47 2015
@@ -94,6 +94,14 @@
 		<finalName>uima-core</finalName>
     <pluginManagement>
       <plugins>
+        <!-- Uncomment the next to run with -Xlint:unchecked  -->
+        <!--plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <configuration>
+            <compilerArgument>-Xlint:unchecked</compilerArgument>
+          </configuration>
+        </plugin-->
         <plugin>
           <groupId>org.apache.rat</groupId>
           <artifactId>apache-rat-plugin</artifactId>

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java Mon Mar 23 22:17:47 2015
@@ -474,7 +474,7 @@ public interface CAS extends AbstractCas
    *          The type of the FS.
    * @return The new FS.
    */
-  FeatureStructure createFS(Type type) throws CASRuntimeException;
+  <T extends FeatureStructure> T createFS(Type type) throws CASRuntimeException;
 
   /**
    * Create a new feature structure array.

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIndexRepository.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIndexRepository.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIndexRepository.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIndexRepository.java Mon Mar 23 22:17:47 2015
@@ -72,7 +72,7 @@ public interface FSIndexRepository {
    * 
    * @return All indexes.
    */
-  Iterator<FSIndex<FeatureStructure>> getIndexes();
+  Iterator<FSIndex<? extends FeatureStructure>> getIndexes();
 
   /**
    * Get all indexes in this repository as low level indexes

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationBaseImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationBaseImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationBaseImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationBaseImpl.java Mon Mar 23 22:17:47 2015
@@ -21,7 +21,6 @@ package org.apache.uima.cas.impl;
 
 import org.apache.uima.cas.AnnotationBaseFS;
 import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.FeatureStructure;
 
 /**
  * Class comment for AnnotationImpl.java goes here.
@@ -30,19 +29,19 @@ import org.apache.uima.cas.FeatureStruct
  */
 public class AnnotationBaseImpl extends FeatureStructureImplC implements AnnotationBaseFS {
 
-  private static class AnnotationBaseFSGenerator implements FSGenerator {
+  private static class AnnotationBaseFSGenerator implements FSGenerator<AnnotationBaseImpl> {
 
     private AnnotationBaseFSGenerator() {
       super();
     }
 
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public AnnotationBaseImpl createFS(int addr, CASImpl cas) {
       return new AnnotationBaseImpl(addr, cas);
     }
 
   }
 
-  static FSGenerator getAnnotationGenerator() {
+  static FSGenerator<? extends AnnotationBaseFS> getAnnotationGenerator() {
     return new AnnotationBaseFSGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/AnnotationImpl.java Mon Mar 23 22:17:47 2015
@@ -20,7 +20,6 @@
 package org.apache.uima.cas.impl;
 
 import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.text.AnnotationFS;
 
 /**
@@ -30,7 +29,7 @@ import org.apache.uima.cas.text.Annotati
  */
 public class AnnotationImpl extends AnnotationBaseImpl implements AnnotationFS {
 
-  private static class AnnotationFSGenerator implements FSGenerator {
+  private static class AnnotationFSGenerator implements FSGenerator<AnnotationImpl> {
 
     private AnnotationFSGenerator() {
       super();
@@ -39,13 +38,13 @@ public class AnnotationImpl extends Anno
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public AnnotationImpl createFS(int addr, CASImpl cas) {
       return new AnnotationImpl(addr, cas);
     }
 
   }
 
-  static FSGenerator getAnnotationGenerator() {
+  static FSGenerator<AnnotationImpl> getAnnotationGenerator() {
     return new AnnotationFSGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSGenerator.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSGenerator.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSGenerator.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ArrayFSGenerator.java Mon Mar 23 22:17:47 2015
@@ -19,9 +19,8 @@
 
 package org.apache.uima.cas.impl;
 
-import org.apache.uima.cas.FeatureStructure;
 
-public class ArrayFSGenerator implements FSGenerator {
+public class ArrayFSGenerator implements FSGenerator<ArrayFSImpl> {
 
   public ArrayFSGenerator() {
     super();
@@ -30,7 +29,7 @@ public class ArrayFSGenerator implements
   /**
    * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, CASImpl)
    */
-  public FeatureStructure createFS(int addr, CASImpl cas) {
+  public ArrayFSImpl createFS(int addr, CASImpl cas) {
     return new ArrayFSImpl(addr, cas);
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BooleanArrayFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BooleanArrayFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BooleanArrayFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BooleanArrayFSImpl.java Mon Mar 23 22:17:47 2015
@@ -20,7 +20,6 @@
 package org.apache.uima.cas.impl;
 
 import org.apache.uima.cas.BooleanArrayFS;
-import org.apache.uima.cas.FeatureStructure;
 
 /**
  * Implementation of the {@link org.apache.uima.cas.BooleanArrayFS BooleanArrayFS} interface.
@@ -29,11 +28,11 @@ import org.apache.uima.cas.FeatureStruct
  */
 public class BooleanArrayFSImpl extends CommonAuxArrayFSImpl implements BooleanArrayFS {
 
-  private static class BooleanArrayGenerator implements FSGenerator {
+  private static class BooleanArrayGenerator implements FSGenerator<BooleanArrayFSImpl> {
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public BooleanArrayFSImpl createFS(int addr, CASImpl cas) {
       return new BooleanArrayFSImpl(addr, cas);
     }
   }
@@ -42,7 +41,7 @@ public class BooleanArrayFSImpl extends
     super(cas, addr); // note arg reversal
   }
 
-  static FSGenerator generator() {
+  static FSGenerator<BooleanArrayFSImpl> generator() {
     return new BooleanArrayGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ByteArrayFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ByteArrayFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ByteArrayFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/ByteArrayFSImpl.java Mon Mar 23 22:17:47 2015
@@ -29,12 +29,12 @@ import org.apache.uima.cas.FeatureStruct
  */
 public class ByteArrayFSImpl extends CommonAuxArrayFSImpl implements ByteArrayFS {
 
-  private static class ByteArrayGenerator implements FSGenerator {
+  private static class ByteArrayGenerator implements FSGenerator<ByteArrayFSImpl> {
 
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public ByteArrayFSImpl createFS(int addr, CASImpl cas) {
       return new ByteArrayFSImpl(addr, cas);
     }
   }
@@ -43,7 +43,7 @@ public class ByteArrayFSImpl extends Com
     super(cas, addr); // note arg reversal
   }
 
-  static FSGenerator generator() {
+  static FSGenerator<ByteArrayFSImpl> generator() {
     return new ByteArrayGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java Mon Mar 23 22:17:47 2015
@@ -121,8 +121,8 @@ public class CASImpl extends AbstractCas
   public static final int DEFAULT_INITIAL_HEAP_SIZE = 500000;
 
   public static final int DEFAULT_RESET_HEAP_SIZE = 5000000;
-
-  private static final int resetHeapSize = DEFAULT_RESET_HEAP_SIZE;
+//  no longer used 3/2015
+//  private static final int resetHeapSize = DEFAULT_RESET_HEAP_SIZE;
 
 
   /**
@@ -275,7 +275,7 @@ public class CASImpl extends AbstractCas
 
     private ComponentInfo componentInfo;
 
-    private FSGenerator[] localFsGenerators;
+    private FSGenerator<? extends FeatureStructure>[] localFsGenerators;
     
     /**
      * This tracks the changes for delta cas
@@ -592,7 +592,7 @@ public class CASImpl extends AbstractCas
     return ConstraintFactory.instance();
   }
 
-  public FeatureStructure createFS(Type type) {
+  public <T extends FeatureStructure> T  createFS(Type type) {
     final int typeCode = ((TypeImpl) type).getCode();
     if (!isCreatableType(typeCode)) {
       CASRuntimeException e = new CASRuntimeException(CASRuntimeException.NON_CREATABLE_TYPE,
@@ -975,7 +975,7 @@ public class CASImpl extends AbstractCas
   }
 
   // internal use, public for cross class ref
-  public void setLocalFsGenerators(FSGenerator[] fsGenerators) {
+  public void setLocalFsGenerators(FSGenerator<? extends FeatureStructure>[] fsGenerators) {
     this.svd.localFsGenerators = fsGenerators;
   }
 
@@ -1968,7 +1968,7 @@ public class CASImpl extends AbstractCas
    *         addresses in the valid address space actually represent feature
    *         structures, and which don't.
    */
-  public FeatureStructure createFS(int addr) {
+  public <T extends FeatureStructure> T createFS(int addr) {
     return ll_getFSForRef(addr);
   }
 
@@ -3419,7 +3419,8 @@ public class CASImpl extends AbstractCas
     return fsi.getAddress();
   }
 
-  public FeatureStructure ll_getFSForRef(int fsRef) {
+  @SuppressWarnings("unchecked")
+  public <T extends FeatureStructure> T ll_getFSForRef(int fsRef) {
     // return this.svd.casMetadata.fsClassRegistry.createFS(fsRef, this);
     if (fsRef == 0) {
       return null;
@@ -3427,14 +3428,14 @@ public class CASImpl extends AbstractCas
     if (this.svd.useFSCache) {
       // FS object cache code.
       // ***** NOTE: This code has not been maintained and may not work ******
-      FeatureStructure fs = null;
+      T fs = null;
       try {
-        fs = this.svd.fsArray[fsRef];
+        fs = (T) this.svd.fsArray[fsRef];
       } catch (ArrayIndexOutOfBoundsException e) {
         // Do nothing. Code below will expand array as needed.
       }
       if (fs == null) {
-        fs = this.svd.localFsGenerators[getHeap().heap[fsRef]].createFS(fsRef, this);
+        fs = (T) this.svd.localFsGenerators[getHeap().heap[fsRef]].createFS(fsRef, this);
         // fs =
         // this.svd.casMetadata.fsClassRegistry.createFSusingGenerator(fsRef,
         // this);
@@ -3452,7 +3453,7 @@ public class CASImpl extends AbstractCas
       return fs;
     }
 
-    return this.svd.localFsGenerators[getHeap().heap[fsRef]].createFS(fsRef, this);
+    return (T) this.svd.localFsGenerators[getHeap().heap[fsRef]].createFS(fsRef, this);
     // return this.svd.casMetadata.fsClassRegistry.createFSusingGenerator(fsRef,
     // this);
   }
@@ -4529,11 +4530,11 @@ public class CASImpl extends AbstractCas
     return this.svd.casMetadata.ts.startFeat;
   }
 
-  private AnnotationFS createDocumentAnnotation(int length) {
+  private <T extends AnnotationFS> T createDocumentAnnotation(int length) {
     final TypeSystemImpl ts = this.svd.casMetadata.ts;
     // Remove any existing document annotations.
-    FSIterator<AnnotationFS> it = getAnnotationIndex(ts.docType).iterator();
-    List<AnnotationFS> list = new ArrayList<AnnotationFS>();
+    FSIterator<T> it = this.<T>getAnnotationIndex(ts.docType).iterator();
+    List<T> list = new ArrayList<T>();
     while (it.isValid()) {
       list.add(it.get());
       it.moveToNext();
@@ -4541,7 +4542,7 @@ public class CASImpl extends AbstractCas
     for (int i = 0; i < list.size(); i++) {
       getIndexRepository().removeFS(list.get(i));
     }
-    return (AnnotationFS) ll_getFSForRef(ll_createDocumentAnnotation(length));
+    return this.<T>ll_getFSForRef(ll_createDocumentAnnotation(length));
   }
   
   public int ll_createDocumentAnnotation(int length) {
@@ -4580,12 +4581,17 @@ public class CASImpl extends AbstractCas
     }
   }
   
-  public AnnotationFS getDocumentAnnotation() {
+  /**
+   * Generic issue:  The returned document annotation could be either an instance of 
+   *   DocumentAnnotation or an instance of AnnotationImpl - the Java cover class used for 
+   *   annotations when JCas is not being used.
+   */
+  public <T extends AnnotationFS> T getDocumentAnnotation() {
     if (this == this.svd.baseCAS) {
       // base CAS has no document
       return null;
     }
-    FSIterator<AnnotationFS> it = getAnnotationIndex(this.svd.casMetadata.ts.docType).iterator();
+    FSIterator<T> it = this.<T>getAnnotationIndex(this.svd.casMetadata.ts.docType).iterator();
     if (it.isValid()) {
       return it.get();
     }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/DoubleArrayFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/DoubleArrayFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/DoubleArrayFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/DoubleArrayFSImpl.java Mon Mar 23 22:17:47 2015
@@ -20,7 +20,6 @@
 package org.apache.uima.cas.impl;
 
 import org.apache.uima.cas.DoubleArrayFS;
-import org.apache.uima.cas.FeatureStructure;
 
 /**
  * Implementation of the {@link org.apache.uima.cas.DoubleArrayFS DoubleArrayFS} interface.
@@ -29,11 +28,11 @@ import org.apache.uima.cas.FeatureStruct
  */
 public class DoubleArrayFSImpl extends CommonAuxArrayFSImpl implements DoubleArrayFS {
 
-  private static class DoubleArrayGenerator implements FSGenerator {
+  private static class DoubleArrayGenerator implements FSGenerator<DoubleArrayFSImpl> {
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public DoubleArrayFSImpl createFS(int addr, CASImpl cas) {
       return new DoubleArrayFSImpl(addr, cas);
     }
   }
@@ -42,7 +41,7 @@ public class DoubleArrayFSImpl extends C
     super(cas, addr); // note arg reversal
   }
 
-  static FSGenerator generator() {
+  static FSGenerator<DoubleArrayFSImpl> generator() {
     return new DoubleArrayGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java Mon Mar 23 22:17:47 2015
@@ -24,7 +24,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 
 /*
@@ -110,21 +109,21 @@ import org.apache.uima.cas.Type;
 
 public class FSClassRegistry {
 
-  private static class DefaultFSGenerator implements FSGenerator {
+  private static class DefaultFSGenerator implements FSGenerator<FeatureStructureImplC> {
     private DefaultFSGenerator() {
       super();
     }
 
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public FeatureStructureImplC createFS(int addr, CASImpl cas) {
       return new FeatureStructureImplC(cas, addr);
     }
   }
 
   private TypeSystemImpl ts;
 
-  private FSGenerator[] generators; 
+  private FSGenerator<?>[] generators; 
   
-  private static final FSGenerator defaultGenerator = new DefaultFSGenerator();
+  private static final FSGenerator<FeatureStructureImplC> defaultGenerator = new DefaultFSGenerator();
  
   /*
    * Generators sometimes need to be changed while running
@@ -144,8 +143,8 @@ public class FSClassRegistry {
    *   
    */
   // This map can be accessed on different threads at the same time
-  private final Map<ClassLoader, FSGenerator[]> generatorsByClassLoader = 
-          Collections.synchronizedMap(new HashMap<ClassLoader, FSGenerator[]>(4));
+  private final Map<ClassLoader, FSGenerator<?>[]> generatorsByClassLoader = 
+          Collections.synchronizedMap(new HashMap<ClassLoader, FSGenerator<?>[]>(4));
 
   // private final RedBlackTree rbt;
   // private final TreeMap map;
@@ -171,7 +170,7 @@ public class FSClassRegistry {
    * @param fsFactory
    *          the object having a createFS method in it for this type
    */
-  synchronized void addClassForType(Type type, FSGenerator fsFactory) {
+  synchronized void addClassForType(Type type, FSGenerator<?> fsFactory) {
     Iterator<Type> it = this.ts.getTypeIterator();
     TypeImpl sub;
     while (it.hasNext()) {
@@ -188,7 +187,7 @@ public class FSClassRegistry {
    * @param type -
    * @param fsFactory - 
    */
-  public void addGeneratorForType(TypeImpl type, FSGenerator fsFactory) {
+  public void addGeneratorForType(TypeImpl type, FSGenerator<?> fsFactory) {
     //this.generators[type.getCode()] = fsFactory;
   }
 
@@ -216,12 +215,12 @@ public class FSClassRegistry {
 //    }
   }
   
-  public void saveGeneratorsForClassLoader(ClassLoader cl, FSGenerator[] newGenerators) {
+  public void saveGeneratorsForClassLoader(ClassLoader cl, FSGenerator<?>[] newGenerators) {
     generatorsByClassLoader.put(cl, newGenerators);
   }
   
   public boolean swapInGeneratorsForClassLoader(ClassLoader cl, CASImpl casImpl) {
-    FSGenerator[] cachedGenerators = generatorsByClassLoader.get(cl);
+    FSGenerator<?>[] cachedGenerators = generatorsByClassLoader.get(cl);
     if (cachedGenerators != null) {
       casImpl.setLocalFsGenerators(cachedGenerators);
       return true;
@@ -257,12 +256,12 @@ public class FSClassRegistry {
    *   another thread
    */
   
-  public synchronized FSGenerator [] getBaseGenerators() {
+  public synchronized FSGenerator<?> [] getBaseGenerators() {
     return this.generators;
   }
   
   // internal use, public only for cross package ref
-  public synchronized void setBaseGenerators(FSGenerator [] generators) {
+  public synchronized void setBaseGenerators(FSGenerator<?>[] generators) {
     this.generators = generators;
   }
   
@@ -270,7 +269,7 @@ public class FSClassRegistry {
    * Internal Use Only
    */
   
-  public synchronized FSGenerator [] getNewFSGeneratorSet() {  
+  public synchronized FSGenerator<?>[] getNewFSGeneratorSet() {  
       return this.generators.clone();   
   }
 }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSGenerator.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSGenerator.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSGenerator.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSGenerator.java Mon Mar 23 22:17:47 2015
@@ -22,8 +22,8 @@ package org.apache.uima.cas.impl;
 import org.apache.uima.cas.FeatureStructure;
 
 
-public interface FSGenerator {
+public interface FSGenerator<T extends FeatureStructure> {
 
-  FeatureStructure createFS(int addr, CASImpl cas);
+  T createFS(int addr, CASImpl cas);
 
 }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java Mon Mar 23 22:17:47 2015
@@ -187,6 +187,7 @@ public class FSIndexRepositoryImpl imple
     // Populate the cache.
     // For read-only CASes, this may be called on multiple threads, so do some synchronization
         
+    @SuppressWarnings("unchecked")
     private void createIndexIteratorCache() {
       // using double-checked sync - see http://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java
       if (isIteratorCacheSetup) {
@@ -211,7 +212,7 @@ public class FSIndexRepositoryImpl imple
         
         for (int i = 0; i < len; i++) {
           final int typeCode = ((TypeImpl) allTypes.get(i)).getCode();
-          final ArrayList<IndexIteratorCachePair<? extends FeatureStructure>> indexList = FSIndexRepositoryImpl.this.indexArray[typeCode];
+          final ArrayList<IndexIteratorCachePair<?>> indexList = FSIndexRepositoryImpl.this.indexArray[typeCode];
           final int indexPos = indexList.indexOf(this);
           if (indexPos >= 0) {
             // unchecked:  the fsLeafIndex is for some subtype of FeatureStructure, but needs to be restricted to
@@ -954,7 +955,7 @@ public class FSIndexRepositoryImpl imple
       int kind = iicp.fsLeafIndex.getIndexingStrategy();
       for (int i = 0; i < iterators.length; i++) {
         if (kind == FSIndex.SORTED_INDEX) {
-          FSIntArrayIndex<? extends FeatureStructure> sortedIndex = getCachedSortedSubFsLeafIndexes(iicp, i); 
+          FSIntArrayIndex<? extends FeatureStructure> sortedIndex = getCachedSortedSubFsLeafIndex(iicp, i); 
           if (sortedIndex.findEq(fs) < 0) {
             continue;  // 
           }
@@ -1131,7 +1132,7 @@ public class FSIndexRepositoryImpl imple
       FSIndexComparator comp = leafIndex.getComparator();
       
       final int size = iicp0.size();  // adds up all the sizes of the indexes
-      sortedLeafIndex = (FSIntArrayIndex<T>) addNewIndexCore(comp, size, FSIndex.SORTED_INDEX);
+      sortedLeafIndex = (FSIntArrayIndex<T>) FSIndexRepositoryImpl.this.<T>addNewIndexCore(comp, size, FSIndex.SORTED_INDEX);
       snapshot = sortedLeafIndex.getVector().getArray();
       this.size = size;
       flattenCopy(iicp0, isRootOnly);
@@ -1616,22 +1617,10 @@ public class FSIndexRepositoryImpl imple
    * @param i which sub index to get
    * @return the subindex, cast to FSIntArrayIndex<T>
    */
-  private <T extends FeatureStructure> FSIntArrayIndex<T> getCachedSortedSubFsLeafIndexes(IndexIteratorCachePair<T>iicp, int i) {
-    return (FSIntArrayIndex<T>) iicp.cachedSubFsLeafIndexes.get(i);
+  private FSIntArrayIndex<? extends FeatureStructure> getCachedSortedSubFsLeafIndex(
+      IndexIteratorCachePair<? extends FeatureStructure> iicp, int i) {
+    return (FSIntArrayIndex<? extends FeatureStructure>) iicp.cachedSubFsLeafIndexes.get(i);
   }
-  
-  /**
-   * Get a particular sorted subLeafIndex
-   * Implemented as a subroutine to have the unchecked cast done in one place
-   * @param iicp having the subLeafIndexes
-   * @param i which sub index to get
-   * @return the subindex, cast to FSIntArrayIndex<T>
-   */
-  private <T extends FeatureStructure> FSLeafIndexImpl<T> getCachedSubFsLeafIndexes(IndexIteratorCachePair<T>iicp, int i) {
-    return (FSLeafIndexImpl<T>) iicp.cachedSubFsLeafIndexes.get(i);
-  }
-
-
 
   /**
    * Reset all indexes.
@@ -1925,8 +1914,8 @@ public class FSIndexRepositoryImpl imple
   /**
    * @see org.apache.uima.cas.admin.FSIndexRepositoryMgr#getIndexes()
    */
-  public Iterator<FSIndex<FeatureStructure>> getIndexes() {
-    final ArrayList<FSIndex<FeatureStructure>> indexList = new ArrayList<FSIndex<FeatureStructure>>();
+  public Iterator<FSIndex<? extends FeatureStructure>> getIndexes() {
+    final ArrayList<FSIndex<? extends FeatureStructure>> indexList = new ArrayList<>();
     final Iterator<String> it = this.getLabels();
     String label;
     while (it.hasNext()) {

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIntArrayIndex.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIntArrayIndex.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIntArrayIndex.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIntArrayIndex.java Mon Mar 23 22:17:47 2015
@@ -34,7 +34,7 @@ import org.apache.uima.internal.util.Int
  * Uses IntVector (sorted) as the index (of FSs)
  * @param <T> the Java cover class type for this index, passed along to (wrapped) iterators producing Java cover classes
  */
-public class FSIntArrayIndex<T extends FeatureStructure> extends FSLeafIndexImpl {
+public class FSIntArrayIndex<T extends FeatureStructure> extends FSLeafIndexImpl<T> {
 
   private class IntVectorIterator implements ComparableIntPointerIterator, LowLevelIterator {
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIteratorWrapper.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIteratorWrapper.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIteratorWrapper.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIteratorWrapper.java Mon Mar 23 22:17:47 2015
@@ -50,7 +50,7 @@ public class FSIteratorWrapper<T extends
    * @see org.apache.uima.cas.FSIterator#get()
    */
   public T get() {
-    return (T) this.casImpl.createFS(this.it.get());
+    return this.casImpl.createFS(this.it.get());
   }
 
   /**

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/IntArrayFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/IntArrayFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/IntArrayFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/IntArrayFSImpl.java Mon Mar 23 22:17:47 2015
@@ -29,7 +29,7 @@ import org.apache.uima.cas.IntArrayFS;
  */
 public class IntArrayFSImpl extends CommonArrayFSImpl implements IntArrayFS {
 
-  private static class IntArrayFSGenerator implements FSGenerator {
+  private static class IntArrayFSGenerator implements FSGenerator<IntArrayFSImpl> {
 
     private IntArrayFSGenerator() {
       super(); // does nothing, super is Object, is implicit by Java Lang rules
@@ -38,7 +38,7 @@ public class IntArrayFSImpl extends Comm
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public IntArrayFSImpl createFS(int addr, CASImpl cas) {
       return new IntArrayFSImpl(addr, cas);
     }
 
@@ -48,7 +48,7 @@ public class IntArrayFSImpl extends Comm
     super(cas, addr);
   }
 
-  static FSGenerator generator() {
+  static FSGenerator<IntArrayFSImpl> generator() {
     return new IntArrayFSGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongArrayFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongArrayFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongArrayFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongArrayFSImpl.java Mon Mar 23 22:17:47 2015
@@ -29,7 +29,7 @@ import org.apache.uima.cas.LongArrayFS;
  */
 public class LongArrayFSImpl extends CommonAuxArrayFSImpl implements LongArrayFS {
 
-  private static class LongArrayGenerator implements FSGenerator {
+  private static class LongArrayGenerator implements FSGenerator<LongArrayFSImpl> {
 
     private LongArrayGenerator() {
       super();
@@ -38,7 +38,7 @@ public class LongArrayFSImpl extends Com
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public LongArrayFSImpl createFS(int addr, CASImpl cas) {
       return new LongArrayFSImpl(addr, cas);
     }
 
@@ -48,7 +48,7 @@ public class LongArrayFSImpl extends Com
     super(cas, addr);
   }
 
-  static FSGenerator generator() {
+  static FSGenerator<LongArrayFSImpl> generator() {
     return new LongArrayGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelCAS.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelCAS.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelCAS.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelCAS.java Mon Mar 23 22:17:47 2015
@@ -250,7 +250,7 @@ public interface LowLevelCAS {
    *          The FS reference.
    * @return A FS object corresponding to the input reference.
    */
-  FeatureStructure ll_getFSForRef(int fsRef);
+  <T extends FeatureStructure> T ll_getFSForRef(int fsRef);
 
   /**
    * Get the value of an integer valued feature.

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SofaFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SofaFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SofaFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SofaFSImpl.java Mon Mar 23 22:17:47 2015
@@ -35,7 +35,7 @@ import org.apache.uima.cas.Type;
  */
 public class SofaFSImpl extends FeatureStructureImplC implements SofaFS {
 
-	private static class SofaFSGenerator implements FSGenerator {
+	private static class SofaFSGenerator implements FSGenerator<SofaFSImpl> {
 
 		private SofaFSGenerator() {
 			super();
@@ -44,13 +44,13 @@ public class SofaFSImpl extends FeatureS
 		/**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-		public FeatureStructure createFS(int addr, CASImpl cas) {
+    public SofaFSImpl createFS(int addr, CASImpl cas) {
 			return new SofaFSImpl(addr, cas);
 		}
 
 	}
 
-	static FSGenerator getSofaFSGenerator() {
+	static FSGenerator<SofaFSImpl> getSofaFSGenerator() {
 		return new SofaFSGenerator();
 	}
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringArrayFSImpl.java Mon Mar 23 22:17:47 2015
@@ -29,7 +29,7 @@ import org.apache.uima.cas.StringArrayFS
  */
 public class StringArrayFSImpl extends CommonArrayFSImpl implements StringArrayFS {
 
-  private static class StringArrayGenerator implements FSGenerator {
+  private static class StringArrayGenerator implements FSGenerator<StringArrayFSImpl> {
 
     private StringArrayGenerator() {
       super();
@@ -38,7 +38,7 @@ public class StringArrayFSImpl extends C
     /**
      * @see org.apache.uima.cas.impl.FSGenerator#createFS(int, LowLevelCAS)
      */
-    public FeatureStructure createFS(int addr, CASImpl cas) {
+    public  StringArrayFSImpl createFS(int addr, CASImpl cas) {
       return new StringArrayFSImpl(addr, cas);
     }
 
@@ -48,7 +48,7 @@ public class StringArrayFSImpl extends C
     super(cas, addr);
   }
 
-  static FSGenerator generator() {
+  static FSGenerator<StringArrayFSImpl> generator() {
     return new StringArrayGenerator();
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java Mon Mar 23 22:17:47 2015
@@ -667,7 +667,8 @@ public abstract class UimaContext_ImplBa
    * @see org.apache.uima.UimaContext#getEmptyCas(java.lang.Class)
    * see http://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java
    */
-  public AbstractCas getEmptyCas(Class aCasInterface) {
+  @Override
+  public <T extends AbstractCas> T getEmptyCas(Class<T> aCasInterface) {
     if (!mCasPoolCreated) {
       synchronized (this) {
         if (!mCasPoolCreated) {

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/Util.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/Util.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/Util.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/Util.java Mon Mar 23 22:17:47 2015
@@ -71,17 +71,17 @@ public class Util {
     return r;
   }
 
-  public static AbstractCas setupViewSwitchClassLoaders(
+  public static <T extends AbstractCas> T setupViewSwitchClassLoaders(
       CAS cas, 
       boolean sofaAware, 
       ComponentInfo componentInfo,
       ResourceManager resourceManager, 
-      Class<? extends AbstractCas> casInterface) {
+      Class<T> casInterface) {
     CASImpl ci = getStartingView(cas, sofaAware, componentInfo);
     // get requested interface to CAS (CAS or JCas)
     // next will create JCas if needed, but not already created
     // must precede the switchClassLoader call - that one needs the JCas link, if it is being used
-    AbstractCas r = CasManager_impl.getCasInterfaceStatic(ci, casInterface);
+    T r = CasManager_impl.<T>getCasInterfaceStatic(ci, casInterface);
     // This cas will be unlocked and its class loader restored when the
     //   next() method returns it
     // Insure the same view is passed for switching/restoring  https://issues.apache.org/jira/browse/UIMA-2211

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java Mon Mar 23 22:17:47 2015
@@ -153,7 +153,7 @@ public interface JCas extends AbstractCa
   /*
    * Internal Use - sets the corresponding Java instance for a Cas instance
    */
-  public abstract TOP getJfsFromCaddr(int casAddr);
+  public abstract <T extends TOP> T getJfsFromCaddr(int casAddr);
 
   /*
    * Internal Use. 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCasRegistry.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCasRegistry.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCasRegistry.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JCasRegistry.java Mon Mar 23 22:17:47 2015
@@ -20,13 +20,15 @@ package org.apache.uima.jcas;
 
 import java.util.ArrayList;
 
+import org.apache.uima.jcas.cas.TOP;
+
 /**
  * Maintains a registry of JCas cover classes that have been loaded.  Methods on this
  * class are called from JCas cover classes (that is, classes generated by JCasGen).
  * They are not intended to be called directly from user-written code.
  */
 public class JCasRegistry {
-  private static ArrayList loadedJCasClasses = new ArrayList();
+  private static ArrayList<Class<? extends TOP>> loadedJCasClasses = new ArrayList<>();
   
   /**
    * Registers a JCas cover class with this registry.  The registry will assign
@@ -35,7 +37,7 @@ public class JCasRegistry {
    * @param aJCasCoverClass the class to register
    * @return the unique index value for this class.
    */
-  public static synchronized int register(Class aJCasCoverClass) {
+  public static synchronized int register(Class<? extends TOP> aJCasCoverClass) {
     loadedJCasClasses.add(aJCasCoverClass);
     return loadedJCasClasses.size() - 1;
   }
@@ -74,9 +76,9 @@ public class JCasRegistry {
    * @return the JCas cover class that was assigned the value <code>aIndex</code> during its registration,
    *    <code>null</code> if none.
    */
-  public static synchronized Class getClassForIndex(int aIndex) {
+  public static synchronized Class<? extends TOP> getClassForIndex(int aIndex) {
     if (aIndex >= 0 && aIndex < loadedJCasClasses.size())
-      return (Class)loadedJCasClasses.get(aIndex);
+      return loadedJCasClasses.get(aIndex);
     else
       return null;
   }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JFSIndexRepository.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JFSIndexRepository.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JFSIndexRepository.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/JFSIndexRepository.java Mon Mar 23 22:17:47 2015
@@ -24,6 +24,7 @@ import java.util.Iterator;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIndexRepository;
 import org.apache.uima.cas.FSIterator;
+import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.jcas.cas.TOP;
@@ -49,7 +50,7 @@ public interface JFSIndexRepository {
    * @return The index with the name <code>label</code>, or <code>null</code> if no such index
    *         is defined.
    */
-  FSIndex<TOP> getIndex(String label);
+  <T extends TOP> FSIndex<T> getIndex(String label);
 
   /**
    * Retrieve an index according to a label and a type. The type is used to narrow down the index of
@@ -62,7 +63,7 @@ public interface JFSIndexRepository {
    * @return The specified index, or <code>null</code> if an index with that name doesn't exist,
    *         or it exists but <code>type</code> is not a subtype of the index's type.
    */
-  FSIndex<TOP> getIndex(String label, int type);
+  <T extends TOP> FSIndex<T> getIndex(String label, int type);
 
   /**
    * Get the standard annotation index.
@@ -78,7 +79,7 @@ public interface JFSIndexRepository {
    *          The annotation type the index is restricted to, written as Foo.type
    * @return The standard annotation index, restricted to <code>type</code>.
    */
-  AnnotationIndex<Annotation> getAnnotationIndex(int type);
+  <T extends Annotation> AnnotationIndex<T> getAnnotationIndex(int type);
 
   /**
    * Get all labels for all indexes.
@@ -89,10 +90,10 @@ public interface JFSIndexRepository {
 
   /**
    * Get all indexes in this repository.
-   * 
+   * Generics: Some may be for things not having JCas cover classes, so the type of FSIndex is ? extends FeatureStructure
    * @return All indexes.
    */
-  Iterator<FSIndex<TOP>> getIndexes();
+  Iterator<FSIndex<? extends FeatureStructure>> getIndexes();
 
   /**
    * Get the underlying FSIndexRepository associated with this JFSIndexRepository.
@@ -109,13 +110,15 @@ public interface JFSIndexRepository {
    * one set index defined, then this method will only return the contents of one of these set
    * indexes (chosen arbitrarily).
    * 
+   * Generics:  The returned Java cover class may not be a JCas one.
+   * 
    * @param aType
    *          The type
    * 
    * @return An iterator that returns all indexed FeatureStructures of type <code>aType</code>,
    *         in no particular order.
    */
-  FSIterator<TOP> getAllIndexedFS(Type aType);
+  FSIterator<FeatureStructure> getAllIndexedFS(Type aType);
 
   /**
    * Gets an iterator over all indexed FeatureStructures of the specified Type (and any of its
@@ -125,12 +128,14 @@ public interface JFSIndexRepository {
    * one set index defined, then this method will only return the contents of one of these set
    * indexes (chosen arbitrarily).
    * 
+   * Generics:  The returned Java cover class may not be a JCas one.
+   * 
    * @param aType
    *          The type obtained by doing MyJCasClass.type
    * 
    * @return An iterator that returns all indexed FeatureStructures of type <code>aType</code>,
    *         in no particular order.
    */
-  FSIterator<TOP> getAllIndexedFS(int aType);
+  FSIterator<FeatureStructure> getAllIndexedFS(int aType);
 
 }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase_Type.java Mon Mar 23 22:17:47 2015
@@ -21,10 +21,8 @@ package org.apache.uima.jcas.cas;
 
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.Feature;
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.SofaFS;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
 import org.apache.uima.cas.impl.FeatureImpl;
 import org.apache.uima.cas.impl.TypeImpl;
@@ -32,25 +30,26 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class AnnotationBase_Type extends org.apache.uima.jcas.cas.TOP_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but needed for compatibility with existing JCasGen'd cover classes
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (AnnotationBase_Type.this.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = AnnotationBase_Type.this.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new AnnotationBase(addr, AnnotationBase_Type.this);
-          AnnotationBase_Type.this.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new AnnotationBase(addr, AnnotationBase_Type.this);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public AnnotationBase createFS(int addr, CASImpl cas) {
+//      if (AnnotationBase_Type.this.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        AnnotationBase fs = AnnotationBase_Type.this.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new AnnotationBase(addr, AnnotationBase_Type.this);
+//          AnnotationBase_Type.this.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new AnnotationBase(addr, AnnotationBase_Type.this);
+//    }
+//  };
 
   public final static int typeIndexID = AnnotationBase.typeIndexID;
 
@@ -73,7 +72,7 @@ public class AnnotationBase_Type extends
   // * initialize variables to correspond with Cas Type and Features
   public AnnotationBase_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
     casFeat_sofa = jcas.getRequiredFeatureDE(casType, "sofa", "uima.cas.Sofa", featOkTst);
     casFeatCode_sofa = (null == casFeat_sofa) ? JCas.INVALID_FEATURE_CODE

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray_Type.java Mon Mar 23 22:17:47 2015
@@ -19,11 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
 // *********************************
@@ -41,34 +38,32 @@ public final class BooleanArray_Type ext
 
   // generator used by the CAS system when it needs to make a new instance
 
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (BooleanArray_Type.this.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = BooleanArray_Type.this.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new BooleanArray(addr, BooleanArray_Type.this);
-          BooleanArray_Type.this.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new BooleanArray(addr, BooleanArray_Type.this);
-    }
-  };
-
-  private BooleanArray_Type() {
-  } // block default new operator
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public BooleanArray createFS(int addr, CASImpl cas) {
+//      if (BooleanArray_Type.this.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        BooleanArray fs = BooleanArray_Type.this.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new BooleanArray(addr, BooleanArray_Type.this);
+//          BooleanArray_Type.this.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new BooleanArray(addr, BooleanArray_Type.this);
+//    }
+//  };
 
   public BooleanArray_Type(JCas jcas, Type casType) {
     super(jcas, casType);
     // Do not factor to TOP_Type - requires access to instance values
     // which are not set when super is called (per JVM spec)
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
   }
 
   // ******************************************************

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray_Type.java Mon Mar 23 22:17:47 2015
@@ -19,11 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
 // *********************************
@@ -39,36 +36,34 @@ public final class ByteArray_Type extend
    */
   public final static int typeIndexID = ByteArray.typeIndexID;
 
-  // generator used by the CAS system when it needs to make a new instance
-
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+//  // generator used by the CAS system when it needs to make a new instance
+//
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (ByteArray_Type.this.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = ByteArray_Type.this.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new ByteArray(addr, ByteArray_Type.this);
-          ByteArray_Type.this.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new ByteArray(addr, ByteArray_Type.this);
-    }
-  };
-
-  private ByteArray_Type() {
-  } // block default new operator
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public ByteArray createFS(int addr, CASImpl cas) {
+//      if (ByteArray_Type.this.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        ByteArray fs = (ByteArray) ByteArray_Type.this.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new ByteArray(addr, ByteArray_Type.this);
+//          ByteArray_Type.this.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new ByteArray(addr, ByteArray_Type.this);
+//    }
+//  };
 
   public ByteArray_Type(JCas jcas, Type casType) {
     super(jcas, casType);
     // Do not factor to TOP_Type - requires access to instance values
     // which are not set when super is called (per JVM spec)
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
   }
 
   // ******************************************************

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray_Type.java Mon Mar 23 22:17:47 2015
@@ -19,11 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
 // *********************************
@@ -39,36 +36,34 @@ public final class DoubleArray_Type exte
    */
   public final static int typeIndexID = DoubleArray.typeIndexID;
 
-  // generator used by the CAS system when it needs to make a new instance
-
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+//  // generator used by the CAS system when it needs to make a new instance
+//
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (DoubleArray_Type.this.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = DoubleArray_Type.this.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new DoubleArray(addr, DoubleArray_Type.this);
-          DoubleArray_Type.this.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new DoubleArray(addr, DoubleArray_Type.this);
-    }
-  };
-
-  private DoubleArray_Type() {
-  } // block default new operator
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public DoubleArray createFS(int addr, CASImpl cas) {
+//      if (DoubleArray_Type.this.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        DoubleArray fs = (DoubleArray) DoubleArray_Type.this.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new DoubleArray(addr, DoubleArray_Type.this);
+//          DoubleArray_Type.this.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new DoubleArray(addr, DoubleArray_Type.this);
+//    }
+//  };
 
   public DoubleArray_Type(JCas jcas, Type casType) {
     super(jcas, casType);
     // Do not factor to TOP_Type - requires access to instance values
     // which are not set when super is called (per JVM spec)
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
   }
 
   // ******************************************************

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList_Type.java Mon Mar 23 22:17:47 2015
@@ -19,34 +19,31 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class EmptyFSList_Type extends FSList_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (instanceOf_Type.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new EmptyFSList(addr, instanceOf_Type);
-          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new EmptyFSList(addr, instanceOf_Type);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    public EmptyFSList createFS(int addr, CASImpl cas) {
+//      if (instanceOf_Type.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        EmptyFSList fs = (EmptyFSList) instanceOf_Type.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new EmptyFSList(addr, instanceOf_Type);
+//          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new EmptyFSList(addr, instanceOf_Type);
+//    }
+//  };
 
   public final static int typeIndexID = EmptyFSList.typeIndexID;
 
@@ -55,7 +52,7 @@ public class EmptyFSList_Type extends FS
   // * initialize variables to correspond with Cas Type and Features
   public EmptyFSList_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList_Type.java Mon Mar 23 22:17:47 2015
@@ -19,34 +19,33 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class EmptyFloatList_Type extends FloatList_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (instanceOf_Type.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new EmptyFloatList(addr, instanceOf_Type);
-          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new EmptyFloatList(addr, instanceOf_Type);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public EmptyFloatList createFS(int addr, CASImpl cas) {
+//      if (instanceOf_Type.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        EmptyFloatList fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new EmptyFloatList(addr, instanceOf_Type);
+//          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new EmptyFloatList(addr, instanceOf_Type);
+//    }
+//  };
 
   public final static int typeIndexID = EmptyFloatList.typeIndexID;
 
@@ -55,7 +54,7 @@ public class EmptyFloatList_Type extends
   // * initialize variables to correspond with Cas Type and Features
   public EmptyFloatList_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList_Type.java Mon Mar 23 22:17:47 2015
@@ -19,34 +19,33 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class EmptyIntegerList_Type extends IntegerList_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (instanceOf_Type.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new EmptyIntegerList(addr, instanceOf_Type);
-          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new EmptyIntegerList(addr, instanceOf_Type);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public EmptyIntegerList createFS(int addr, CASImpl cas) {
+//      if (instanceOf_Type.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        EmptyIntegerList fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new EmptyIntegerList(addr, instanceOf_Type);
+//          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new EmptyIntegerList(addr, instanceOf_Type);
+//    }
+//  };
 
   public final static int typeIndexID = EmptyIntegerList.typeIndexID;
 
@@ -55,7 +54,7 @@ public class EmptyIntegerList_Type exten
   // * initialize variables to correspond with Cas Type and Features
   public EmptyIntegerList_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList_Type.java Mon Mar 23 22:17:47 2015
@@ -19,34 +19,31 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class EmptyStringList_Type extends StringList_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (instanceOf_Type.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new EmptyStringList(addr, instanceOf_Type);
-          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new EmptyStringList(addr, instanceOf_Type);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    public FeatureStructure createFS(int addr, CASImpl cas) {
+//      if (instanceOf_Type.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new EmptyStringList(addr, instanceOf_Type);
+//          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new EmptyStringList(addr, instanceOf_Type);
+//    }
+//  };
 
   public final static int typeIndexID = EmptyStringList.typeIndexID;
 
@@ -55,7 +52,7 @@ public class EmptyStringList_Type extend
   // * initialize variables to correspond with Cas Type and Features
   public EmptyStringList_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray_Type.java Mon Mar 23 22:17:47 2015
@@ -23,9 +23,7 @@ package org.apache.uima.jcas.cas;
 
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
 // *********************************
@@ -39,36 +37,34 @@ public class FSArray_Type extends Common
 
   public final static int typeIndexID = FSArray.typeIndexID;
 
-  // generator used by the CAS system when it needs to make a new instance
-
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+//  // generator used by the CAS system when it needs to make a new instance
+//
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (instanceOf_Type.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new FSArray(addr, instanceOf_Type);
-          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new FSArray(addr, instanceOf_Type);
-    }
-  };
-
-  private FSArray_Type() {
-  } // block default new operator
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public FSArray createFS(int addr, CASImpl cas) {
+//      if (instanceOf_Type.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        FSArray fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new FSArray(addr, instanceOf_Type);
+//          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new FSArray(addr, instanceOf_Type);
+//    }
+//  };
 
   public FSArray_Type(JCas jcas, Type casType) {
     super(jcas, casType);
     // Do not factor to TOP_Type - requires access to instance values
     // which are not set when super is called (per JVM spec)
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
   }
 
   // ******************************************************

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList_Type.java Mon Mar 23 22:17:47 2015
@@ -19,34 +19,32 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class FSList_Type extends org.apache.uima.jcas.cas.TOP_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (FSList_Type.this.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = FSList_Type.this.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new FSList(addr, FSList_Type.this);
-          FSList_Type.this.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new FSList(addr, FSList_Type.this);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public FSList createFS(int addr, CASImpl cas) {
+//      if (FSList_Type.this.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        FSList fs = FSList_Type.this.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new FSList(addr, FSList_Type.this);
+//          FSList_Type.this.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new FSList(addr, FSList_Type.this);
+//    }
+//  };
 
   public final static int typeIndexID = FSList.typeIndexID;
 
@@ -55,7 +53,7 @@ public class FSList_Type extends org.apa
   // * initialize variables to correspond with Cas Type and Features
   public FSList_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
   }
 

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray_Type.java Mon Mar 23 22:17:47 2015
@@ -23,9 +23,7 @@ package org.apache.uima.jcas.cas;
 
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
 // *********************************
@@ -41,25 +39,25 @@ public class FloatArray_Type extends Com
 
   // generator used by the CAS system when it needs to make a new instance
 
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (instanceOf_Type.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new FloatArray(addr, instanceOf_Type);
-          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new FloatArray(addr, instanceOf_Type);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    public FeatureStructure createFS(int addr, CASImpl cas) {
+//      if (instanceOf_Type.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        FeatureStructure fs = instanceOf_Type.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new FloatArray(addr, instanceOf_Type);
+//          instanceOf_Type.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new FloatArray(addr, instanceOf_Type);
+//    }
+//  };
 
   private FloatArray_Type() {
   } // block default new operator
@@ -68,7 +66,7 @@ public class FloatArray_Type extends Com
     super(jcas, casType);
     // Do not factor to TOP_Type - requires access to instance values
     // which are not set when super is called (per JVM spec)
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
   }
 
   // ******************************************************

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList_Type.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList_Type.java?rev=1668751&r1=1668750&r2=1668751&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList_Type.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList_Type.java Mon Mar 23 22:17:47 2015
@@ -19,34 +19,32 @@
 
 package org.apache.uima.jcas.cas;
 
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSGenerator;
-import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 public class FloatList_Type extends org.apache.uima.jcas.cas.TOP_Type {
-  protected FSGenerator getFSGenerator() {
-    return fsGenerator;
+  protected FSGenerator<?> getFSGenerator() {
+    return null; // no longer used, but may be needed for compatibility with older existing JCasGen'd cover classes that might extend this class
   }
-
-  private final FSGenerator fsGenerator = new FSGenerator() {
-    public FeatureStructure createFS(int addr, CASImpl cas) {
-      if (FloatList_Type.this.useExistingInstance) {
-        // Return eq fs instance if already created
-        FeatureStructure fs = FloatList_Type.this.jcas.getJfsFromCaddr(addr);
-        if (null == fs) {
-          fs = new FloatList(addr, FloatList_Type.this);
-          FloatList_Type.this.jcas.putJfsFromCaddr(addr, fs);
-          return fs;
-        }
-        return fs;
-      } else
-        return new FloatList(addr, FloatList_Type.this);
-    }
-  };
+//
+//  private final FSGenerator fsGenerator = new FSGenerator() {
+//    @SuppressWarnings("unchecked")
+//    public FloatList createFS(int addr, CASImpl cas) {
+//      if (FloatList_Type.this.useExistingInstance) {
+//        // Return eq fs instance if already created
+//        FloatList fs = FloatList_Type.this.jcas.getJfsFromCaddr(addr);
+//        if (null == fs) {
+//          fs = new FloatList(addr, FloatList_Type.this);
+//          FloatList_Type.this.jcas.putJfsFromCaddr(addr, fs);
+//          return fs;
+//        }
+//        return fs;
+//      } else
+//        return new FloatList(addr, FloatList_Type.this);
+//    }
+//  };
 
   public final static int typeIndexID = FloatList.typeIndexID;
 
@@ -55,7 +53,7 @@ public class FloatList_Type extends org.
   // * initialize variables to correspond with Cas Type and Features
   public FloatList_Type(JCas jcas, Type casType) {
     super(jcas, casType);
-    casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
+//     casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl) this.casType, getFSGenerator());
 
   }