Interface CommitCallback

All Known Implementing Classes:
AbstractCommitCallback
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 CommitCallback
Describes a callback for receiving a stream of commits.

Note: Implementors are strongly encouraged to extend from AbstractCommitCallback. 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
    onCommit(Commit commit)
    Receives a fully-populated commit for processing.
    default void
    Called after the final commit has been streamed.
    default void
    Called before the first commit is streamed.
  • Method Details

    • onCommit

      boolean onCommit(@Nonnull Commit commit) throws IOException
      Receives a fully-populated commit for processing.

      This method will never be invoked before onStart(CommitContext), and if it is invoked onEnd(CommitSummary) is guaranteed to be invoked, whether the end happens because this method returns false or because the upstream sender runs out of commits.

      Parameters:
      commit - the commit
      Returns:
      true if more commits should be provided; otherwise false to end streaming, potentially leaving some number of commits unread
      Throws:
      IOException - for implementations which perform I/O
    • onEnd

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

      Note: If there were no commits, this method may be called immediately after onStart(CommitContext) without any calls to onCommit(Commit).

      Parameters:
      summary - summarizes the request and the streamed commits
      Throws:
      IOException - for implementations which perform I/O
    • onStart

      default void onStart(@Nonnull CommitContext context) throws IOException
      Called before the first commit is streamed.
      Parameters:
      context - provides details about the request for which commits are being streamed
      Throws:
      IOException - for implementations which perform I/O