Interface BeanDatabaseUpdateListener

  • All Known Implementing Classes:
    ConfigurationListener

    @Contract
    public interface BeanDatabaseUpdateListener
    This is a listener that is notified when changes are made to the current BeanDatabase
    Author:
    jwells
    • Method Detail

      • prepareDatabaseChange

        void prepareDatabaseChange​(BeanDatabase currentDatabase,
                                   BeanDatabase proposedDatabase,
                                   Object commitMessage,
                                   List<Change> changes)
        This method will be called prior to the bean database being updated. If this method throws an exception subsequent listeners prepare methods will not be called and the rollback method of any listeners that had run previously will be called and the proposedDatabase will not become the current database. If all the registered bean update listeners prepare methods return normally then the proposedDatabase will become the current database
        Parameters:
        currentDatabase - The bean database that is current in effect
        proposedDatabase - The bean database that will go into effect
        commitMessage - An object passed to the commit method in a dynamic change
        changes - The changes that were made to the current database
      • commitDatabaseChange

        void commitDatabaseChange​(BeanDatabase oldDatabase,
                                  BeanDatabase currentDatabase,
                                  Object commitMessage,
                                  List<Change> changes)
        This method is called after the change of database has already happened. If this method throws an exception subsequent listeners commit methods will be called, but the WriteableBeanDatabase.commit() method will throw an exception, indicating a possibly inconsistent state
        Parameters:
        oldDatabase - The database from which the current database was derived
        currentDatabase - The current bean database
        commitMessage - An object passed to the commit method in a dynamic change
        changes - The changes that were made to arrive at the current database