Interface ChangeCallback

All Known Implementing Classes:
AbstractChangeCallback
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ChangeCallback
Describes a callback for receiving streaming changes.

Implementations of this callback performing internal paging may return false from onChange(Change) to indicate no more changes are desired. Such implementations are encouraged to also implement the PagedCallback interface to allow the system to optimise output handling, where possible, based on the page being requested.

Note: Implementors are strongly encouraged to extend from AbstractChangeCallback. This interface will change, over time, and any class implementing it directly will be broken by such changes. Extending from the abstract class will help prevent such breakages.

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    onChange(Change change)
    Provides a change to the callback for processing.
    default void
    Called after the final change has been streamed.
    default void
    Called before the first change is streamed.
  • Method Details

    • onChange

      boolean onChange(@Nonnull Change change) throws IOException
      Provides a change to the callback for processing.

      If the callback is performing internal paging, it may signal the end of the page by returning false here. When doing so, onEnd(ChangeSummary) will never receive true for truncation.

      Parameters:
      change - the change to process
      Returns:
      true if additional changes should be provided; otherwise, false if the callback has received as many changes as desired
      Throws:
      IOException - may be thrown by implementations which perform I/O
    • onEnd

      default void onEnd(@Nonnull ChangeSummary summary) throws IOException
      Called after the final change has been streamed.

      Note: If there were no changes, this method may be called immediately after onStart(ChangeContext) without any calls to onChange(Change).

      Parameters:
      summary - summarizes the request and the streamed changes
      Throws:
      IOException - may be thrown by implementations which perform I/O.
    • onStart

      default void onStart(@Nonnull ChangeContext context) throws IOException
      Called before the first change is streamed.
      Parameters:
      context - provides details about the request for which changes are being streamed
      Throws:
      IOException - may be thrown by implementations which perform I/O.