package lectures.undo_commands;
import util.annotations.WebDocuments;
@WebDocuments({"Lectures/UndoCommands.pptx", "Lectures/UndoCommands.pdf", "Videos/UndoCommands.avi"})
public class LastCommandUndoer  implements Undoer {
    Command lastCommand = null;
    boolean lastCommandWasUndone = false;
    public void execute (Command c){
        c.execute();
        lastCommand = c;
        lastCommandWasUndone = false;
    }    
    public void undo() {
        if (lastCommandWasUndone || lastCommand == null)   
            return;       
        lastCommand.undo();
        lastCommandWasUndone = true;              
    }
    public void redo() {
        if (!lastCommandWasUndone || lastCommand == null)
            return;        
        lastCommand.execute();
        lastCommandWasUndone = false;                   
    }
}