Class ResultSet

java.lang.Object
com.couchbase.lite.ResultSet
All Implemented Interfaces:
AutoCloseable, Iterable<Result>

public class ResultSet extends Object implements Iterable<Result>, AutoCloseable
The representation of a query result. The result set is an iterator over Result objects. Note: This object retains the Results it contains: closing it will free the Results, too. Referencing a Result after closing the ResultSet that contains it will cause a crash. This code, for instance will fail. DO NOT DO THIS: final List<Result> results; try (ResultSet rs = QueryBuilder.select(SelectResult.expression(Meta.id).as("id")) .from(DataSource.collection(someCollectin)) .execute()) { results = rs.allResults(); } catch (CouchbaseLiteException err) { throw new RuntimeException("Failed querying docs in collection: " + someCollection, err); } final List<String> docs = new ArrayList<>(); for (Result result: results) { docs.addt(result.getString("id")); } // SIGSEGV!!!
  • Method Details

    • next

      @Nullable public Result next()
      Move the cursor forward one row from its current row position.

      Caution: next(), iterator() and iterator() method share same data structure. They cannot be used together.

      Caution: When a ResultSet is obtained from a QueryChangeListener and the QueryChangeListener is removed from Query, the ResultSet will be freed and this method will return null.

      Returns:
      the Result after moving the cursor forward. Returns null value if there are no more rows, or ResultSet is freed already.
    • allResults

      @NonNull public List<Result> allResults()
      Return a List of all Results.

      Caution: next(), allResults() and iterator() method share same data structure. They cannot be used together.

      Returns:
      List of Results
    • iterator

      @NonNull public Iterator<Result> iterator()
      Return Iterator of Results.

      Caution: next(), allResults() and iterator() method share same data structure. They cannot be used together.

      Specified by:
      iterator in interface Iterable<Result>
      Returns:
      an iterator over the elements in this list in proper sequence
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable