Class EventGenerator


  • public class EventGenerator
    extends java.lang.Object
    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();
     }
     
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addHandler​(NodeState before, NodeState after, EventHandler handler)  
      void generate()
      Generates a finite number of EventHandler callbacks based on the content changes that have yet to be processed.
      boolean isDone()
      Checks whether there are no more content changes to be processed.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • 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 Detail

      • isDone

        public boolean isDone()
        Checks whether there are no more content changes to be processed.
      • generate

        public void generate()
        Generates a finite number of EventHandler callbacks based on the content changes that have yet to be processed. Further processing (even if no callbacks were made) may be postponed to a future generate() call, until the isDone() method finally return true.