Author: schor Date: Wed Jul 18 18:48:27 2018 New Revision: 1836221 URL: http://svn.apache.org/viewvc?rev=1836221&view=rev Log: [UIMA-5827] add isEmpty() method to selectFSs
Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml?rev=1836221&r1=1836220&r2=1836221&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml (original) +++ uima/uv3/uimaj-v3/trunk/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml Wed Jul 18 18:48:27 2018 @@ -800,6 +800,13 @@ startAt(begin, end, shifted) // same as </para> </listitem> </varlistentry> + <varlistentry> + <term><emphasis role="strong">isEmpty</emphasis></term> + <listitem> + <para>returns true if the selection is empty. + </para> + </listitem> + </varlistentry> </variablelist> </section> <section id="uv3.select.terminal_form_actions.streams"> Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java?rev=1836221&r1=1836220&r2=1836221&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/SelectFSs.java Wed Jul 18 18:48:27 2018 @@ -689,6 +689,11 @@ public interface SelectFSs<T extends Fea default void forEach(Consumer<? super T> action) { Iterable.super.forEach(action); } + + /** + * @return true if the selection is empty + */ + boolean isEmpty(); // /** // * DON'T USE THIS, use index.select(XXX.class) instead Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java?rev=1836221&r1=1836220&r2=1836221&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java Wed Jul 18 18:48:27 2018 @@ -1583,4 +1583,9 @@ public class SelectFSs_impl <T extends F return stream().unordered(); } + @Override + public boolean isEmpty() { + if (this.limit == 0) return true; + return fsIterator().size() == 0; + } } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java?rev=1836221&r1=1836220&r2=1836221&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java Wed Jul 18 18:48:27 2018 @@ -163,4 +163,18 @@ public class SelectFsTest { // uimaFIT: JCasUtil.selectByIndex(jCas, Token.class, -1).getCoveredText() assertEquals("t4", jcas.select(Token.class).backwards().get(0).getCoveredText()); } + + @Test + public void testempty() { + cas.reset(); + JCas jcas = cas.getJCas(); + cas.setDocumentText("t1 t2 t3 t4"); + + Token p1 = new Token(jcas, 0, 2); + p1.addToIndexes(); + assertFalse(jcas.select(Token.class).isEmpty()); + cas.reset(); + assertTrue(jcas.select(Token.class).isEmpty()); + + } }