Fan high command
public class FanHighCommand implements Command {
private CeilingFan fan;
private int prevSpeed;
public FanHighCommand(CeilingFan fan) {
this.fan = fan;
}
public void execute() {
prevSpeed = fan.getSpeed();
fan.high();
}
public void undo() {
revert(prevSpeed);
}
private void revert(int speed) {
switch (speed) {
case CeilingFan.HIGH:
fan.high();
break;
case CeilingFan.MEDIUM:
fan.medium();
break;
case CeilingFan.LOW:
fan.low();
break;
default:
fan.off();
break;
}
}
}