package org.incha.core.jswingripples.eig.history;
import java.util.LinkedList;
public class CompoundUndoAction implements UndoAction {
/**
* List of sub actions.
*/
private final LinkedList<UndoAction> actions = new LinkedList<UndoAction>();
/**
* Default constructor.
*/
public CompoundUndoAction() {
super();
}
/**
* @param a add action to batch.
*/
public void add(final UndoAction a) {
actions.add(a);
}
/* (non-Javadoc)
* @see org.incha.core.jswingripples.eig.history.BackAction#undo()
*/
@Override
public CompoundUndoAction undo() {
final CompoundUndoAction action = new CompoundUndoAction();
for (final UndoAction undo : actions) {
final UndoAction redo = undo.undo();
if (redo != null) {
action.actions.addFirst(redo);
}
}
return action;
}
}