OneCompiler

Fan high command

54

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;
    }
}

}