package org.springmodules.prevayler.transaction;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.prevayler.Transaction;
import org.springmodules.prevayler.callback.PrevaylerCallback;
import org.springmodules.prevayler.system.PrevalentSystem;
/**
* Composite Prevayler transaction command for executing a list of {@link org.springmodules.prevayler.PrevaylerCallback}s.
*
* @author Sergio Bossa
*/
public class CompositeTransactionCommand implements Transaction {
private static final long serialVersionUID = 476105999506330034L;
private List callbacks;
public CompositeTransactionCommand(List callbacks) {
this.callbacks = callbacks;
}
public void executeOn(Object object, Date date) {
PrevalentSystem system= (PrevalentSystem) object;
Iterator it = this.callbacks.iterator();
while (it.hasNext()) {
PrevaylerCallback callback = (PrevaylerCallback) it.next();
callback.doInTransaction(system);
}
}
}