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