    1   package groovy.txn;
    2
    3   import groovy.lang.Closure;
    4
    5   /***
    6    * @author James Strachan
    7    * @version $Revision: 1.2 $
    8    */
    9   public class TransactionBuilder {
    10      public void transaction(Closure closure) {
    11          TransactionBean bean = new TransactionBean();
    12          closure.setDelegate(bean);
    13          closure.call(this);
    14
    15          // lets call the closures now
    16          System.out.println("Performing normal transaction");
    17          bean.run().call(this);
    18          bean.onSuccess().call(this);
    19
    20          System.out.println("Performing error transaction");
    21          bean.run().call(this);
    22          bean.onError().call(this);
    23      }
    24  }