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.
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 TypeMethodDescriptionboolean
Provides achange
to the callback for processing.default void
onEnd
(ChangeSummary summary) Called after the finalchange
has been streamed.default void
onStart
(ChangeContext context) Called before the firstchange
is streamed.
-
Method Details
-
onChange
Provides achange
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 receivetrue
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
Called after the finalchange
has been streamed.Note: If there were no changes, this method may be called immediately after
onStart(ChangeContext)
without any calls toonChange(Change)
.- Parameters:
summary
- summarizes the request and the streamed changes- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onStart
Called before the firstchange
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.
-