Class EventGenerator
java.lang.Object
org.apache.jackrabbit.oak.plugins.observation.EventGenerator
Continuation-based content diff implementation that generates
EventHandler callbacks by recursing down a content diff
in a way that guarantees that only a finite number of callbacks
will be made during a generate() method call, regardless
of how large or complex the content diff is.
A simple usage pattern would look like this:
EventGenerator generator = new EventGenerator(before, after, handler);
while (!generator.isDone()) {
generator.generate();
}
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new generator instance.EventGenerator(@NotNull NodeState before, @NotNull NodeState after, @NotNull EventHandler handler) Creates a new generator instance for processing the given changes. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddHandler(NodeState before, NodeState after, EventHandler handler) voidgenerate()Generates a finite number ofEventHandlercallbacks based on the content changes that have yet to be processed.booleanisDone()Checks whether there are no more content changes to be processed.
-
Constructor Details
-
EventGenerator
public EventGenerator()Creates a new generator instance. Changes to process need to be added throughaddHandler(NodeState, NodeState, EventHandler) -
EventGenerator
public EventGenerator(@NotNull @NotNull NodeState before, @NotNull @NotNull NodeState after, @NotNull @NotNull EventHandler handler) Creates a new generator instance for processing the given changes.
-
-
Method Details
-
addHandler
-
isDone
public boolean isDone()Checks whether there are no more content changes to be processed. -
generate
public void generate()Generates a finite number ofEventHandlercallbacks based on the content changes that have yet to be processed. Further processing (even if no callbacks were made) may be postponed to a futuregenerate()call, until theisDone()method finally returntrue.
-