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());
+    
+  }
 }


Reply via email to