001package io.ebean.event.changelog;
002
003/**
004 * Listen for changes.
005 * <p>
006 * Implementations can take the changes and store them in a document store for auditing purposes etc.
007 * </p>
008 */
009public interface ChangeLogPrepare {
010
011  /**
012   * In the foreground prepare the changeLog for sending.
013   * <p>
014   * This is intended to set extra context information onto the ChangeSet such
015   * as the application user id and client ip address.
016   * </p>
017   * <p>
018   * Returning false means the changeLog is not sent to the log() method in a background thread
019   * and implies that the changeSet should be ignored or that is has been handled in this prepare()
020   * method call.
021   * </p>
022   *
023   * @return true if the changeLog should then be sent to the log method in a background thread.
024   */
025  boolean prepare(ChangeSet changeSet);
026
027}