Class ChangeDispatcher

java.lang.Object
org.apache.jackrabbit.oak.spi.commit.ChangeDispatcher
All Implemented Interfaces:
Observable, Observer

public class ChangeDispatcher extends Object implements Observable, Observer
A ChangeDispatcher instance dispatches content changes to registered Observers.

Changes are reported by calling contentChanged(NodeState, CommitInfo).

The addObserver(Observer) method registers an Observer for receiving notifications for all changes reported to this instance.

  • Constructor Details

    • ChangeDispatcher

      public ChangeDispatcher(@NotNull @NotNull NodeState root)
      Create a new instance for dispatching content changes
      Parameters:
      root - current root node state
  • Method Details

    • addObserver

      @NotNull public @NotNull Closeable addObserver(Observer observer)
      Register a new Observer for receiving notifications about changes reported to this change dispatcher. Changes are reported synchronously and clients need to ensure to no block any length of time (e.g. by relaying through a BackgroundObserver).

      Clients need to call Closeable.close() close} on the returned Closeable instance to stop receiving notifications.

      Specified by:
      addObserver in interface Observable
      Returns:
      a Closeable instance
    • contentChanged

      public void contentChanged(@NotNull @NotNull NodeState root, @NotNull @NotNull CommitInfo info)
      Description copied from interface: Observer
      Observes a content change. See the Observer class javadocs and relevant repository and observer registration details for more information on when and how this method gets called.
      Specified by:
      contentChanged in interface Observer
      Parameters:
      root - root state of the repository
      info - commit information