Open Source Repository

Home /hibernate/hibernate-3.2.4.ga | Repository Home


org/hibernate/action/Executable.java
//$Id: Executable.java 6607 2005-04-29 15:26:11Z oneovthafew $
package org.hibernate.action;

import org.hibernate.HibernateException;

import java.io.Serializable;

/**
 * An operation which may be scheduled for later execution.
 * Usually, the operation is a database insert/update/delete,
 * together with required second-level cache management.
 
 @author Gavin King
 */
public interface Executable {
  /**
   * Called before executing any actions
   */
  public void beforeExecutions() throws HibernateException;
  /**
   * Execute this action
   */
  public void execute() throws HibernateException;
  /**
   * Do we need to retain this instance until after the
   * transaction completes?
   @return false if this class defines a no-op
   <tt>hasAfterTransactionCompletion()</tt>
   */
  public boolean hasAfterTransactionCompletion();
  /**
   * Called after the transaction completes
   */
  public void afterTransactionCompletion(boolean successthrows HibernateException;
  /**
   * What spaces (tables) are affected by this action?
   */
  public Serializable[] getPropertySpaces();
}