package de.bht.fpa.homeautomation.remote.v3.command;
import de.bht.fpa.homeautomation.vendors.CeilingFan;
import de.bht.fpa.homeautomation.vendors.CeilingFan.CeilingFanModus;
public class CeilingFanHighCommand extends AbstractCommand {
private final CeilingFan ceilingFan;
private CeilingFanModus oldSpeed;
public CeilingFanHighCommand(CeilingFan ceilingFan) {
this.ceilingFan = ceilingFan;
}
@Override
public void execute() {
System.out.println(this.getClass().getSimpleName() + ".execute()");
oldSpeed = ceilingFan.getSpeed();
switch (oldSpeed) {
case OFF:
ceilingFan.low();
break;
case LOW:
ceilingFan.medium();
break;
case MEDIUM:
ceilingFan.high();
break;
}
}
@Override
public void undo() {
System.out.println(this.getClass().getSimpleName() + ".undo()");
switch (oldSpeed) {
case OFF:
ceilingFan.off();
break;
case LOW:
ceilingFan.low();
break;
case MEDIUM:
ceilingFan.medium();
break;
case HIGH:
ceilingFan.high();
break;
}
}
}