-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExternalRequestProcessor.java
More file actions
24 lines (22 loc) · 1.23 KB
/
ExternalRequestProcessor.java
File metadata and controls
24 lines (22 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class ExternalRequestProcessor {
ElevatorSelectionStrategy elevatorSelectionStrategy;
ExternalRequestProcessor() {
elevatorSelectionStrategy=new OddEvenElevatorSelectionStrategy();
}
void addNextStop(ExternalRequest externalRequest) {
ElevatorManager elevatorManager=ElevatorManager.getElevatorManagerInstance();
Elevator elevator=elevatorSelectionStrategy.selectElevator(externalRequest);
NextFloorDirectionPair nextFloorDirectionPair=new NextFloorDirectionPair();
nextFloorDirectionPair.nextFloor=externalRequest.floorNo;
if(elevator.currentFloor==externalRequest.floorNo){
System.out.println("Cannot go to same floor");
}
else if(elevator.currentFloor>externalRequest.floorNo && externalRequest.floorNo>0){
nextFloorDirectionPair.elevatorDirection=ElevatorDirection.DOWN;
}
else if(elevator.currentFloor<externalRequest.floorNo && externalRequest.floorNo<= elevatorManager.getNoOfFloors())
nextFloorDirectionPair.elevatorDirection=ElevatorDirection.UP;
else System.out.println("Throw Error: Invalid Request at InternalRequestProcessor");
elevator.requestQueue.add(nextFloorDirectionPair);
}
}