コード例 #1
0
 public function handleSignal(Elevator $elevator, $signal)
 {
     if ($signal === Elevator::STATE_DOOR_OPEN) {
         if ($elevator->isDoorOpen() || $elevator->isStanding()) {
             $state = Elevator::STATE_DOOR_OPEN;
         } else {
             throw new Exception("Elevator is on it's way. Can not open door right now, sorry!");
         }
     } else {
         $state = $this->delegate($elevator, $signal);
     }
     return $state;
 }
コード例 #2
0
 public function handleSignal(Elevator $elevator, $signal)
 {
     if ($signal === Elevator::STATE_DOOR_CLOSE) {
         if ($elevator->isDoorOpen()) {
             $state = Elevator::STATE_STANDING;
         } else {
             $state = NULL;
         }
     } else {
         $state = $this->delegate($elevator, $signal);
     }
     return $state;
 }
コード例 #3
0
 public function handleSignal(Elevator $elevator, $signal)
 {
     if ($signal === Elevator::STATE_ALARM) {
         if ($elevator->isDoorOpen()) {
             throw new Exception("Elevator has door open, why should you push an alarm button?");
         } else {
             $state = Elevator::STATE_ALARM;
         }
     } else {
         $state = $this->delegate($elevator, $signal);
     }
     return $state;
 }