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/10/17 19:49:13 UTC
svn commit: r1765360 - in
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src:
main/java/org/apache/uima/cas/SelectFSs.java
main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java
Author: schor
Date: Mon Oct 17 19:49:13 2016
New Revision: 1765360
URL: http://svn.apache.org/viewvc?rev=1765360&view=rev
Log:
[UIMA-5115] rename updates to select framework
Modified:
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/SelectFSs_impl.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java
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=1765360&r1=1765359&r2=1765360&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 Mon Oct 17 19:49:13 2016
@@ -70,11 +70,11 @@ public interface SelectFSs<T extends Fea
SelectFSs<T> nonOverlapping(); // AI known as unambiguous
SelectFSs<T> nonOverlapping(boolean nonOverlapping); // AI
- SelectFSs<T> endWithinBounds(); // AI known as "strict"
- SelectFSs<T> endWithinBounds(boolean endWithinBounds); // AI
+ SelectFSs<T> includeAnnotationsWithEndBeyondBounds(); // AI known as "strict"
+ SelectFSs<T> includeAnnotationsWithEndBeyondBounds(boolean endWithinBounds); // AI
- SelectFSs<T> skipEquals();
- SelectFSs<T> skipEquals(boolean skipEquals);
+ SelectFSs<T> useAnnotationEquals();
+ SelectFSs<T> useAnnotationEquals(boolean useAnnotationEquals);
// Miscellaneous
SelectFSs<T> allViews();
@@ -198,7 +198,7 @@ public interface SelectFSs<T extends Fea
* @param index
* @return
*/
- static <U extends FeatureStructure, V extends U> SelectFSs<V> sselect(FSIndex<U> index) {
+ static <U extends FeatureStructure, V extends U> SelectFSs<V> select(FSIndex<U> index) {
return index.select();
}
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=1765360&r1=1765359&r2=1765360&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 Mon Oct 17 19:49:13 2016
@@ -85,7 +85,7 @@ public class SelectFSs_impl <T extends F
private boolean isTypePriority = false;
private boolean isPositionUsesType = false;
- private boolean isSkipEquals = false; // for boundsUse only
+ private boolean isUseAnnotationEquals = false; // for boundsUse only
private boolean isNonOverlapping = false;
private boolean isEndWithinBounds = false;
private boolean isAllViews = false;
@@ -216,8 +216,8 @@ public class SelectFSs_impl <T extends F
* @see org.apache.uima.cas.SelectFSs#skipEquals()
*/
@Override
- public SelectFSs<T> skipEquals() {
- this.isSkipEquals = true;
+ public SelectFSs<T> useAnnotationEquals() {
+ this.isUseAnnotationEquals = true;
return this;
}
@@ -225,8 +225,8 @@ public class SelectFSs_impl <T extends F
* @see org.apache.uima.cas.SelectFSs#skipEquals(boolean)
*/
@Override
- public SelectFSs<T> skipEquals(boolean aSkipEquals) {
- this.isSkipEquals = aSkipEquals;
+ public SelectFSs<T> useAnnotationEquals(boolean useAnnotationEquals) {
+ this.isUseAnnotationEquals = useAnnotationEquals;
return this;
}
@@ -246,12 +246,12 @@ public class SelectFSs_impl <T extends F
}
@Override
- public SelectFSs_impl<T> endWithinBounds() { // AI known as "strict"
+ public SelectFSs_impl<T> includeAnnotationsWithEndBeyondBounds() { // AI known as "strict"
isEndWithinBounds = true;
return this;
}
@Override
- public SelectFSs_impl<T> endWithinBounds(boolean bEndWithinBounds) { // AI
+ public SelectFSs_impl<T> includeAnnotationsWithEndBeyondBounds(boolean bEndWithinBounds) { // AI
isEndWithinBounds = bEndWithinBounds;
return this;
}
@@ -459,7 +459,10 @@ public class SelectFSs_impl <T extends F
final boolean isUseAnnotationIndex =
((index != null) && (index instanceof AnnotationIndex)) ||
- isNonOverlapping ||
+ isNonOverlapping ||
+ isPositionUsesType ||
+ isTypePriority ||
+ isEndWithinBounds ||
boundsUse != BoundsUse.notBounded ||
isFollowing || isPreceding;
@@ -467,6 +470,10 @@ public class SelectFSs_impl <T extends F
forceAnnotationIndex(); // throws if non-null index not an annotation index
}
+ if (isTypePriority) {
+ isPositionUsesType = true;
+ }
+
if (ti == null) {
if (index != null) {
ti = (TypeImpl) index.getType();
@@ -649,7 +656,7 @@ public class SelectFSs_impl <T extends F
boundsUse,
isTypePriority,
isPositionUsesType,
- isSkipEquals,
+ isUseAnnotationEquals,
v.indexRepository.getAnnotationFsComparator());
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java?rev=1765360&r1=1765359&r2=1765360&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java Mon Oct 17 19:49:13 2016
@@ -50,7 +50,7 @@ import org.apache.uima.jcas.tcas.Annotat
import junit.framework.TestCase;
-import static org.apache.uima.cas.SelectFSs.sselect;
+import static org.apache.uima.cas.SelectFSs.select;
/**
* Class comment for FilteredIteratorTest.java goes here.
@@ -311,10 +311,10 @@ public class AnnotationIteratorTest exte
// FSIndexFlat.enabled ? it instanceof FSIndexFlat.FSIteratorFlat : it instanceof FSIteratorWrapper);
assertCount("Normal ambiguous annot iterator", annotCount, it);
assertCount("Normal ambiguous select annot iterator", annotCount, select_it);
- assertEquals(annotCount, sselect(annotIndex).toArray().length); // stream op
- assertEquals(annotCount, sselect(annotIndex).asArray(Annotation.class).length); // select op
+ assertEquals(annotCount, select(annotIndex).toArray().length); // stream op
+ assertEquals(annotCount, select(annotIndex).asArray(Annotation.class).length); // select op
- AnnotationFS[] tokensAndSentences = sselect(annotIndex).asArray(AnnotationFS.class);
+ AnnotationFS[] tokensAndSentences = select(annotIndex).asArray(AnnotationFS.class);
JCas jcas = null;
try {
jcas = cas.getJCas();
@@ -331,7 +331,7 @@ public class AnnotationIteratorTest exte
assertCount("fslhead ambiguous select annot iterator", annotCount, select_it);
// backwards
- select_it = sselect(annotIndex).backwards().fsIterator();
+ select_it = select(annotIndex).backwards().fsIterator();
assertCount("Normal select backwards ambiguous annot iterator", annotCount, select_it);
it = annotIndex.iterator(false); // false means create an unambiguous iterator
@@ -347,26 +347,27 @@ public class AnnotationIteratorTest exte
assertCount("Unambigous select sentence iterator", 5, select_it);
select_it = sentIndex.<AnnotationFS>select().nonOverlapping().fsIterator();
assertCount("Unambigous select sentence iterator", 5, select_it);
- select_it = sselect(sentIndex).nonOverlapping().fsIterator();
+ select_it = select(sentIndex).nonOverlapping().fsIterator();
assertCount("Unambigous select sentence iterator", 5, select_it);
AnnotationFS bigBound = this.cas.createAnnotation(this.sentenceType, 10, 41);
it = annotIndex.subiterator(bigBound, true, true); // ambiguous, and strict
assertCount("Subiterator over annot with big bound, strict", 38, it);
- select_it = cas.<AnnotationFS>select().coveredBy((Annotation) bigBound).endWithinBounds().fsIterator();
+ select_it = cas.<AnnotationFS>select().coveredBy((Annotation) bigBound).includeAnnotationsWithEndBeyondBounds().fsIterator();
assertCount("Subiterator select over annot with big bound, strict", 38, select_it);
- select_it = cas.<AnnotationFS>select().coveredBy(bigBound).limit(7).endWithinBounds().fsIterator();
+ select_it = cas.<AnnotationFS>select().coveredBy(bigBound).limit(7).includeAnnotationsWithEndBeyondBounds().fsIterator();
assertCountLimit("Subiterator select limit 7 over annot with big bound, strict", 7, select_it);
FSIndex<Token> token_index = null;
// uncomment these to check compile-time generic arguments OK
// comment these out for running, because Token not a type
// FSIterator<Token> token_it = token_index.<Token>select().fsIterator();
-// token_it = sselect(token_index).fsIterator();
-// token_it = sselect(annotIndex, Token.class).fsIterator();
+// token_it = select(token_index).fsIterator();
+// token_it = select(annotIndex, Token.class).fsIterator();
// FSIterator<Token> token_it = cas.select(Token.class).fsIterator();
+// FSIterator<Token> token_it = token_index.select(Token.class).fsIterator();
Object[] o = cas.<AnnotationFS>select().coveredBy(bigBound).skip(3).toArray();
assertEquals(35, o.length);
@@ -382,9 +383,9 @@ public class AnnotationIteratorTest exte
it = annotIndex.subiterator(bigBound, false, true); // unambiguous, strict
assertCount("Subiterator over annot unambiguous strict", 3, it);
- select_it = cas.<AnnotationFS>select().coveredBy((Annotation) bigBound).endWithinBounds().nonOverlapping().fsIterator();
+ select_it = cas.<AnnotationFS>select().coveredBy((Annotation) bigBound).includeAnnotationsWithEndBeyondBounds().nonOverlapping().fsIterator();
assertCount("Subiterator select over annot unambiguous strict", 3, select_it);
- select_it = cas.<AnnotationFS>select().backwards().coveredBy((Annotation) bigBound).endWithinBounds().nonOverlapping().fsIterator();
+ select_it = cas.<AnnotationFS>select().backwards().coveredBy((Annotation) bigBound).includeAnnotationsWithEndBeyondBounds().nonOverlapping().fsIterator();
assertCount("Subiterator select over annot unambiguous strict", 3, select_it);
// it = annotIndex.subiterator(bigBound, true, false);
@@ -397,16 +398,16 @@ public class AnnotationIteratorTest exte
assertCount("Subiterator over annot ambiguous not-strict", 46, it);
// covered by implies endWithinBounds
- select_it = sselect(annotIndex).coveredBy(bigBound).fsIterator();
+ select_it = select(annotIndex).coveredBy(bigBound).fsIterator();
assertCount("Subiterator select over annot ambiguous not-strict", 38, select_it);
select_it = annotIndex.<AnnotationFS>select().coveredBy(bigBound).fsIterator();
assertCount("Subiterator select over annot ambiguous not-strict", 38, select_it);
- select_it = sselect(annotIndex).coveredBy(bigBound).endWithinBounds(false).fsIterator();
+ select_it = select(annotIndex).coveredBy(bigBound).includeAnnotationsWithEndBeyondBounds(false).fsIterator();
assertCount("Subiterator select over annot ambiguous not-strict", 46, select_it);
it = annotIndex.subiterator(bigBound, false, false); // unambiguous, not strict
assertCount("Subiterator over annot, unambiguous, not-strict", 4, it);
- select_it = sselect(annotIndex).nonOverlapping().coveredBy(bigBound).endWithinBounds(false).fsIterator();
+ select_it = select(annotIndex).nonOverlapping().coveredBy(bigBound).includeAnnotationsWithEndBeyondBounds(false).fsIterator();
assertCount("Subiterator select over annot unambiguous not-strict", 4, select_it);
AnnotationFS sent = this.cas.getAnnotationIndex(this.sentenceType).iterator().get();
@@ -485,9 +486,9 @@ public class AnnotationIteratorTest exte
assertTrue(x);
cas.<AnnotationFS>select().coveredBy(3, 5).singleOrNull();
- select_it = sselect(annotIndex).following(2, 39).limit(2).fsIterator();
+ select_it = select(annotIndex).following(2, 39).limit(2).fsIterator();
assertCountLimit("Following", 2, select_it);
- select_it = sselect(annotIndex).following(2, 39).backwards().limit(2).fsIterator();
+ select_it = select(annotIndex).following(2, 39).backwards().limit(2).fsIterator();
assertCountLimit("Following", 2, select_it);
select_it = fsa.<AnnotationFS>select(sentenceType).fsIterator();
@@ -650,7 +651,7 @@ public class AnnotationIteratorTest exte
for (AnnotationFS sa : ssi) {
FSIterator<AnnotationFS> ti2 = tokenIdx.<AnnotationFS>select()
- .coveredBy(sa).endWithinBounds(false).nonOverlapping().fsIterator();
+ .coveredBy(sa).includeAnnotationsWithEndBeyondBounds(false).nonOverlapping().fsIterator();
while (ti2.hasNext()) {
AnnotationFS t = ti2.next();
Select method naming
Posted by Richard Eckart de Castilho <re...@apache.org>.
On 17.10.2016, at 21:49, schor@apache.org wrote:
>
> + SelectFSs<T> includeAnnotationsWithEndBeyondBounds(); // AI known as "strict"
> + SelectFSs<T> includeAnnotationsWithEndBeyondBounds(boolean endWithinBounds); // AI
This is a quite humongous for a method, isn't it ;)
We could just use the name "strict()", but based on the conventions, that would imply
that "strict(false)" is the default. Maybe "lax()"?
Best,
-- Richard