Class Changes

java.lang.Object
org.lightcouch.Changes

public class Changes extends Object

Contains the Change Notifications API, supports normal and continuous feed Changes.

Usage Example:

 // feed type normal 
 String since = dbClient.context().info().getUpdateSeq(); // latest update seq
 ChangesResult changeResult = dbClient.changes()
        .since(since) 
        .limit(10)
        .filter("example/filter")
        .getChanges();

 for (ChangesResult.Row row : changeResult.getResults()) {
   String docId = row.getId()
   JsonObject doc = row.getDoc();
 }

 // feed type continuous
 Changes changes = dbClient.changes()
        .includeDocs(true) 
        .heartBeat(30000)
        .continuousChanges(); 
 
 while (changes.hasNext()) { 
        ChangesResult.Row feed = changes.next();
  String docId = feed.getId();
  JsonObject doc = feed.getDoc();
        // changes.stop(); // stop continuous feed
 }
 
Since:
0.0.2
See Also:
  • Field Details

    • reader

      private BufferedReader reader
    • httpGet

      private org.apache.http.client.methods.HttpGet httpGet
    • nextRow

      private ChangesResult.Row nextRow
    • stop

      private boolean stop
    • dbc

      private CouchDbClientBase dbc
    • gson

      private com.google.gson.Gson gson
    • uriBuilder

      private URIBuilder uriBuilder
  • Constructor Details

  • Method Details

    • continuousChanges

      public Changes continuousChanges()
      Requests Change notifications of feed type continuous.

      Feed notifications are accessed in an iterator style.

      Returns:
      Changes
    • hasNext

      public boolean hasNext()
      Checks whether a feed is available in the continuous stream, blocking until a feed is received.
      Returns:
      true If a feed is available
    • next

      public ChangesResult.Row next()
      Returns:
      The next feed in the stream.
    • stop

      public void stop()
      Stops a running continuous feed.
    • getChanges

      public ChangesResult getChanges()
      Requests Change notifications of feed type normal.
      Returns:
      ChangesResult
    • since

      public Changes since(String since)
    • limit

      public Changes limit(int limit)
    • heartBeat

      public Changes heartBeat(long heartBeat)
    • timeout

      public Changes timeout(long timeout)
    • filter

      public Changes filter(String filter)
    • includeDocs

      public Changes includeDocs(boolean includeDocs)
    • style

      public Changes style(String style)
    • readNextRow

      private boolean readNextRow()
      Reads and sets the next feed in the stream.
    • getReader

      private BufferedReader getReader()
    • setReader

      private void setReader(BufferedReader reader)
    • getNextRow

      private ChangesResult.Row getNextRow()
    • setNextRow

      private void setNextRow(ChangesResult.Row nextRow)
    • terminate

      private void terminate()