001package headfirst.command.undo;
002
003public class CeilingFanHighCommand implements Command {
004        CeilingFan ceilingFan;
005        int prevSpeed;
006
007        public CeilingFanHighCommand(CeilingFan ceilingFan) {
008                this.ceilingFan = ceilingFan;
009        }
010
011        public void execute() {
012                prevSpeed = ceilingFan.getSpeed();
013                ceilingFan.high();
014        }
015
016        public void undo() {
017                if (prevSpeed == CeilingFan.HIGH) {
018                        ceilingFan.high();
019                } else if (prevSpeed == CeilingFan.MEDIUM) {
020                        ceilingFan.medium();
021                } else if (prevSpeed == CeilingFan.LOW) {
022                        ceilingFan.low();
023                } else if (prevSpeed == CeilingFan.OFF) {
024                        ceilingFan.off();
025                }
026        }
027}