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 2016/09/27 15:52:37 UTC

svn commit: r1762508 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima: cas/ cas/impl/ jcas/

Author: schor
Date: Tue Sep 27 15:52:37 2016
New Revision: 1762508

URL: http://svn.apache.org/viewvc?rev=1762508&view=rev
Log:
[UIMA-5115] add select methods to index, cas, and jcas.  Change top generic type to TOP (from FeatureStructure).

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIndex.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_snapshot.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CAS.java Tue Sep 27 15:52:37 2016
@@ -26,6 +26,7 @@ import java.util.ListIterator;
 import org.apache.uima.cas.admin.CASAdminException;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.LowLevelCAS;
+import org.apache.uima.cas.impl.SelectFSs_impl;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.jcas.JCas;
@@ -1102,4 +1103,19 @@ public interface CAS extends AbstractCas
    */
   void protectIndexes(Runnable runnable);
 
+  default <T extends TOP> SelectFSs<T> select() {
+    return new SelectFSs_impl<>(this);
+  }
+  default <T extends TOP> SelectFSs<T> select(Type type) {
+    return new SelectFSs_impl<>(this).type(type);
+  }
+  default <T extends TOP> SelectFSs<T> select(Class<T> clazz) {
+    return new SelectFSs_impl<>(this).type(clazz);
+  }
+  default <T extends TOP> SelectFSs<T> select(int jcasType) {
+    return new SelectFSs_impl<>(this).type(jcasType);
+  }
+  default <T extends TOP> SelectFSs<T> select(String fullyQualifiedTypeName) {
+    return new SelectFSs_impl<>(this).type(fullyQualifiedTypeName);
+  }
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIndex.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIndex.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIndex.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIndex.java Tue Sep 27 15:52:37 2016
@@ -19,6 +19,10 @@
 
 package org.apache.uima.cas;
 
+import org.apache.uima.cas.impl.LowLevelIndex;
+import org.apache.uima.cas.impl.SelectFSs_impl;
+import org.apache.uima.jcas.cas.TOP;
+
 /**
  * Feature structure index access interface.
  * 
@@ -205,4 +209,13 @@ public interface FSIndex<T extends Featu
    */
   FSIndex<T> withSnapshotIterators();
 
+  <N extends TOP> SelectFSs<N> select();
+  
+  <N extends TOP> SelectFSs<N> select(Type type);
+  
+  <N extends TOP> SelectFSs<N> select(Class<N> clazz);
+  
+  <N extends TOP> SelectFSs<N> select(int jcasType);
+  
+  <N extends TOP> SelectFSs<N> select(String fullyQualifiedTypeName);
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java Tue Sep 27 15:52:37 2016
@@ -33,7 +33,7 @@ import org.apache.uima.jcas.tcas.Annotat
  *   Ordered = implies an ordered index not necessarily AnnotationIndex
  *   BI = bounded iterator (boundedBy or bounding)
  */
-public interface SelectFSs<T extends FeatureStructure> {
+public interface SelectFSs<T extends TOP> {
   
   // If not specified, defaults to all FSs (unordered) unless AnnotationIndex implied
     // Methods take their generic type from the variable to which they are assigned except for

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java Tue Sep 27 15:52:37 2016
@@ -72,6 +72,7 @@ import org.apache.uima.cas.FloatArrayFS;
 import org.apache.uima.cas.IntArrayFS;
 import org.apache.uima.cas.LongArrayFS;
 import org.apache.uima.cas.Marker;
+import org.apache.uima.cas.SelectFSs;
 import org.apache.uima.cas.ShortArrayFS;
 import org.apache.uima.cas.SofaFS;
 import org.apache.uima.cas.SofaID;

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java Tue Sep 27 15:52:37 2016
@@ -7,8 +7,10 @@ import java.util.Comparator;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.cas.SelectFSs;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.admin.FSIndexComparator;
+import org.apache.uima.jcas.cas.TOP;
 
 /**
  * FsIndex_iicp (iicp)
@@ -483,4 +485,89 @@ class FsIndex_iicp<T extends FeatureStru
     return getCasImpl().indexRepository;
   }
 
+  /**
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_singletype#select() -
+   */
+  public <N extends TOP> SelectFSs<N> select() {
+    return fsIndex_singletype.select();
+  }
+
+  /**
+   * @param type -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_singletype#select(org.apache.uima.cas.Type)
+   */
+  public <N extends TOP> SelectFSs<N> select(Type type) {
+    return fsIndex_singletype.select(type);
+  }
+
+  /**
+   * @param clazz -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_singletype#select(java.lang.Class)
+   */
+  public <N extends TOP> SelectFSs<N> select(Class<N> clazz) {
+    return fsIndex_singletype.select(clazz);
+  }
+
+  /**
+   * @param jcasType -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_singletype#select(int)
+   */
+  public <N extends TOP> SelectFSs<N> select(int jcasType) {
+    return fsIndex_singletype.select(jcasType);
+  }
+
+  /**
+   * @param fullyQualifiedTypeName -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_singletype#select(java.lang.String)
+   */
+  public <N extends TOP> SelectFSs<N> select(String fullyQualifiedTypeName) {
+    return fsIndex_singletype.select(fullyQualifiedTypeName);
+  }
+
+//  /* (non-Javadoc)
+//   * @see org.apache.uima.cas.FSIndex#select()
+//   */
+//  @Override
+//  public SelectFSs<T> select() {
+//    return new SelectFSs_impl<>(getCasImpl()).index(this);
+//  }
+//
+//  /* (non-Javadoc)
+//   * @see org.apache.uima.cas.FSIndex#select(org.apache.uima.cas.Type)
+//   */
+//  @Override
+//  public <N extends TOP> SelectFSs<N> select(Type type) {
+//    return new SelectFSs_impl<>(getCasImpl()).index(this).type(type);
+//  }
+//
+//  /* (non-Javadoc)
+//   * @see org.apache.uima.cas.FSIndex#select(java.lang.Class)
+//   */
+//  @Override
+//  public <N extends TOP> SelectFSs<N> select(Class<N> clazz) {
+//    return new SelectFSs_impl<>(getCasImpl()).index(this).type(clazz);
+//  }
+//
+//  /* (non-Javadoc)
+//   * @see org.apache.uima.cas.FSIndex#select(int)
+//   */
+//  @Override
+//  public <N extends TOP> SelectFSs<N> select(int jcasType) {
+//    return new SelectFSs_impl<>(getCasImpl()).index(this).type(jcasType);
+//  }
+//
+//  /* (non-Javadoc)
+//   * @see org.apache.uima.cas.FSIndex#select(java.lang.String)
+//   */
+//  @Override
+//  public <N extends TOP> SelectFSs<N> select(String fullyQualifiedTypeName) {
+//    return new SelectFSs_impl<>(getCasImpl()).index(this).type(fullyQualifiedTypeName);
+//  }
+
+  
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java Tue Sep 27 15:52:37 2016
@@ -27,6 +27,7 @@ import java.util.WeakHashMap;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.cas.SelectFSs;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.admin.FSIndexComparator;
 import org.apache.uima.cas.admin.LinearTypeOrder;
@@ -425,4 +426,43 @@ public abstract class FsIndex_singletype
     wr_cow = null;
   }
 
+  /* (non-Javadoc)
+   * @see org.apache.uima.cas.FSIndex#select()
+   */
+  @Override
+  public <N extends TOP> SelectFSs<N> select() {
+    return new SelectFSs_impl<>(getCasImpl()).index((FsIndex_singletype<N>)this);
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.cas.FSIndex#select(org.apache.uima.cas.Type)
+   */
+  @Override
+  public <N extends TOP> SelectFSs<N> select(Type type) {
+    return new SelectFSs_impl<>(getCasImpl()).index((FsIndex_singletype<N>)this).type(type);
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.cas.FSIndex#select(java.lang.Class)
+   */
+  @Override
+  public <N extends TOP> SelectFSs<N> select(Class<N> clazz) {
+    return new SelectFSs_impl<>(getCasImpl()).index((FsIndex_singletype<N>)this).type(clazz);
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.cas.FSIndex#select(int)
+   */
+  @Override
+  public <N extends TOP> SelectFSs<N> select(int jcasType) {
+    return new SelectFSs_impl<>(getCasImpl()).index((FsIndex_singletype<N>)this).type(jcasType);
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.cas.FSIndex#select(java.lang.String)
+   */
+  @Override
+  public <N extends TOP> SelectFSs<N> select(String fullyQualifiedTypeName) {
+    return new SelectFSs_impl<>(getCasImpl()).index((FsIndex_singletype<N>)this).type(fullyQualifiedTypeName);
+  }
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_snapshot.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_snapshot.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_snapshot.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_snapshot.java Tue Sep 27 15:52:37 2016
@@ -22,7 +22,9 @@ package org.apache.uima.cas.impl;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.cas.SelectFSs;
 import org.apache.uima.cas.Type;
+import org.apache.uima.jcas.cas.TOP;
 
 /**
  * Implementation of light-weight wrapper of normal indexes, which support special kinds of iterators
@@ -92,4 +94,48 @@ public class FsIndex_snapshot <T extends
   @Override
   public int compare(FeatureStructure o1, FeatureStructure o2) { return wrapped.compare(o1,  o2); }
 
+  /**
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_iicp#select()
+   */
+  public <N extends TOP> SelectFSs<N> select() {
+    return wrapped.select();
+  }
+
+  /**
+   * @param type -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_iicp#select(org.apache.uima.cas.Type)
+   */
+  public <N extends TOP> SelectFSs<N> select(Type type) {
+    return wrapped.select(type);
+  }
+
+  /**
+   * @param clazz -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_iicp#select(java.lang.Class)
+   */
+  public <N extends TOP> SelectFSs<N> select(Class<N> clazz) {
+    return wrapped.select(clazz);
+  }
+
+  /**
+   * @param jcasType -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_iicp#select(int)
+   */
+  public <N extends TOP> SelectFSs<N> select(int jcasType) {
+    return wrapped.select(jcasType);
+  }
+
+  /**
+   * @param fullyQualifiedTypeName -
+   * @return -
+   * @see org.apache.uima.cas.impl.FsIndex_iicp#select(java.lang.String)
+   */
+  public <N extends TOP> SelectFSs<N> select(String fullyQualifiedTypeName) {
+    return wrapped.select(fullyQualifiedTypeName);
+  }
+
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java Tue Sep 27 15:52:37 2016
@@ -38,7 +38,7 @@ import org.apache.uima.jcas.tcas.Annotat
  * Comment codes:
  *   AI = implies AnnotationIndex
  */
-public class SelectFSs_impl <T extends FeatureStructure> implements SelectFSs<T> {
+public class SelectFSs_impl <T extends TOP> implements SelectFSs<T> {
   static enum BoundsUse {
     coveredBy,
     covering,
@@ -508,7 +508,7 @@ public class SelectFSs_impl <T extends F
    * @param it
    * @return it positioned if needed
    */
-  public static <T extends FeatureStructure> FSIterator<T> maybePosition(
+  public static <T extends TOP> FSIterator<T> maybePosition(
       FSIterator<T> it,
       TOP startingFs,
       boolean isAnnotationIndex,

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java?rev=1762508&r1=1762507&r2=1762508&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/JCas.java Tue Sep 27 15:52:37 2016
@@ -36,6 +36,7 @@ import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeaturePath;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.FeatureValuePath;
+import org.apache.uima.cas.SelectFSs;
 import org.apache.uima.cas.SofaFS;
 import org.apache.uima.cas.SofaID;
 import org.apache.uima.cas.Type;
@@ -44,6 +45,7 @@ import org.apache.uima.cas.admin.CASAdmi
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.LowLevelCAS;
 import org.apache.uima.cas.impl.LowLevelIndexRepository;
+import org.apache.uima.cas.impl.SelectFSs_impl;
 import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.jcas.cas.FSArray;
 import org.apache.uima.jcas.cas.IntegerArray;
@@ -672,5 +674,26 @@ public interface JCas extends AbstractCa
    * @exception CASRuntimeException When <code>clazz</code> doesn't correspond to a subtype of the index's type.
    */
   <T extends TOP> FSIndex<T> getIndex(String label, Class<T> clazz);
+  
+  
+  default <T extends TOP> SelectFSs<T> select() {
+    return new SelectFSs_impl<>(getCas());
+  }
+
+  default <N extends TOP> SelectFSs<N> select(Type type) {
+    return new SelectFSs_impl<>(getCasImpl()).type(type);
+  }
+
+  default <N extends TOP> SelectFSs<N> select(Class<N> clazz) {
+    return new SelectFSs_impl<>(getCasImpl()).type(clazz);
+  }
+
+  default <N extends TOP> SelectFSs<N> select(int jcasType) {
+    return new SelectFSs_impl<>(getCasImpl()).type(jcasType);
+  }
+
+  default <N extends TOP> SelectFSs<N> select(String fullyQualifiedTypeName) {
+    return new SelectFSs_impl<>(getCasImpl()).type(fullyQualifiedTypeName);
+  }
 
 }
\ No newline at end of file