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 2018/07/25 18:00:35 UTC
svn commit: r1836652 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src:
main/java/org/apache/uima/cas/ main/java/org/apache/uima/cas/impl/
test/java/org/apache/uima/cas/test/
Author: schor
Date: Wed Jul 25 18:00:35 2018
New Revision: 1836652
URL: http://svn.apache.org/viewvc?rev=1836652&view=rev
Log:
[UIMA-5848]
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java Wed Jul 25 18:00:35 2018
@@ -322,7 +322,19 @@ public interface FSIterator<T extends Fe
* This may be inefficient to compute.
* @return the size of the collection being iterated over.
*/
+ /*
+ * (non-Javadoc)
+ * @see org.apache.uima.cas.FSIterator#size()
+ */
default int size() {
- return ((LowLevelIterator<T>)this).ll_indexSizeMaybeNotCurrent();
+ FSIterator<T> it = copy();
+ it.moveToFirst();
+ int count = 0;
+ while (it.isValid()) {
+ count++;
+ it.nextNvc();
+ }
+ return count;
}
+
}
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java Wed Jul 25 18:00:35 2018
@@ -153,16 +153,7 @@ class FilteredIterator<T extends Feature
return it.getComparator();
}
- @Override
- public int size() {
- FilteredIterator<T> it2 = new FilteredIterator<T>(it, cons);
- int count = 0;
- while (it2.hasNext()) {
- count++;
- it2.nextNvc();
- }
- return count;
- }
+
// /* (non-Javadoc)
// * @see org.apache.uima.cas.impl.FSIteratorImplBase#moveTo(java.util.Comparator)
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java Wed Jul 25 18:00:35 2018
@@ -186,6 +186,10 @@ class FsIterator_bag<T extends FeatureSt
return null; // not used for bag
}
+ @Override
+ public int size() {
+ return bag.size();
+ }
}
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java Wed Jul 25 18:00:35 2018
@@ -193,4 +193,12 @@ public abstract class FsIterator_multipl
: ((LowLevelIterator<T>)allIterators[0]).ll_getIndex());
}
+ @Override
+ public int size() {
+ int r = 0;
+ for (LowLevelIterator<T> it : nonEmptyIterators) {
+ r += it.size();
+ }
+ return r;
+ }
}
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java Wed Jul 25 18:00:35 2018
@@ -301,6 +301,11 @@ class FsIterator_set_sorted2<T extends F
return this.ll_getIndex().isSorted();
}
+ @Override
+ public int size() {
+ return ofsa.size();
+ }
+
// @Override
// protected int getModificationCountFromIndex() {
// return ofsa.getModificationCount();
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java Wed Jul 25 18:00:35 2018
@@ -260,4 +260,9 @@ public class FsIterator_subtypes_snapsho
public Comparator<TOP> getComparator() {
return comparatorMaybeNoTypeWithoutId;
}
+
+ @Override
+ public int size() {
+ return snapshot.length;
+ }
}
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java Wed Jul 25 18:00:35 2018
@@ -63,4 +63,6 @@ public class LowLevelIterator_empty<T ex
public Comparator<TOP> getComparator() { return null; }
@Override
public Type getType() { return TypeSystemImpl.staticTsi.getTopType(); }
+ @Override
+ public int size() { return 0; }
}
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java Wed Jul 25 18:00:35 2018
@@ -1252,18 +1252,6 @@ public class Subiterator<T extends Annot
// TODO Auto-generated method stub
return null;
}
-
- @Override
- public int size() {
- FSIterator<T> it2 = copy();
- it2.moveToFirst();
- int sz = 0;
- while (it2.hasNext()) {
- sz++;
- it2.nextNvc();
- }
- return sz;
- }
// /**
// * Simple implementation:
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java?rev=1836652&r1=1836651&r2=1836652&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java Wed Jul 25 18:00:35 2018
@@ -242,6 +242,7 @@ public class IteratorTest extends TestCa
public void testEmptySnapshotIterator() {
setupindexes();
FSIterator<FeatureStructure> it = sortedIndex.iterator();
+ assertEquals(0, it.size());
assertFalse(it.isValid());
boolean ok = false;
try {
@@ -252,6 +253,7 @@ public class IteratorTest extends TestCa
assertTrue(ok);
it = ssSortedIndex.iterator();
+ assertEquals(0, it.size());
assertFalse(it.isValid());
ok = false;
try {
@@ -286,7 +288,9 @@ public class IteratorTest extends TestCa
FSIndex<AnnotationFS> index = this.cas.getAnnotationIndex();
FSIndex<AnnotationFS> ssIndex = index.withSnapshotIterators();
FSIterator<AnnotationFS> it = index.iterator();
+ assertEquals(60, it.size());
FSIterator<AnnotationFS> ssit = ssIndex.iterator();
+ assertEquals(60, it.size());
it.moveTo(match); // should move to left-most of the 10 with start=5 end=7
ssit.moveTo(match);
assertTrue(index.compare(match, it.get()) == 0);
@@ -311,6 +315,7 @@ public class IteratorTest extends TestCa
index = index.withSnapshotIterators();
it = index.iterator();
+ assertEquals(1, it.size());
it.moveTo(pastEnd);
assertFalse(it.isValid());
@@ -338,6 +343,7 @@ public class IteratorTest extends TestCa
FSIndex<AnnotationFS> index = this.cas.getAnnotationIndex(this.subsentenceType);
FSIterator<AnnotationFS> it = index.iterator();
+ assertEquals((i == 0) ? 6 : 5, it.size());
it.moveTo(testAnnot);
for (int j = 0; j < 2; j++) {
assertTrue(it.isValid());
@@ -352,6 +358,7 @@ public class IteratorTest extends TestCa
index = index.withSnapshotIterators();
it = index.iterator();
+ assertEquals((i == 0) ? 6 : 5, it.size());
it.moveTo(testAnnot);
for (int j = 0; j < 2; j++) {
assertTrue(it.isValid());
@@ -591,6 +598,7 @@ public class IteratorTest extends TestCa
setIndexForType = llir.ll_getIndex(CASTestSetup.ANNOT_SET_INDEX, ((TypeImpl)tokenType).getCode());
LowLevelIterator it = setIndexForType.ll_iterator();
+ assertEquals(20, it.size());
assertTrue(it.isValid());
it.moveToPrevious();
assertFalse(it.isValid());
@@ -606,6 +614,7 @@ public class IteratorTest extends TestCa
private void setIndexIterchk(LowLevelIndex idx, int[] expected) {
LowLevelIterator it = idx.ll_iterator();
+ assertEquals(expected.length, it.size());
int[] r = new int[70];
int i = 0;
while (it.isValid()) {
@@ -849,6 +858,7 @@ public class IteratorTest extends TestCa
private void tstWord(FSIndex<FeatureStructure> index) {
FSIterator<FeatureStructure> it = index.iterator();
+ assertEquals(20, it.size()); // test size
it.moveToLast();
FeatureStructure fs = this.cas.createFS(wType);