-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathElevatorSystem.java
More file actions
37 lines (32 loc) · 1.44 KB
/
ElevatorSystem.java
File metadata and controls
37 lines (32 loc) · 1.44 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
25
26
27
28
29
30
31
32
33
34
35
36
37
public class ElevatorSystem {
private ElevatorSystem() {}
static ElevatorSystem elevatorSystemInstance ;
InternalRequestProcessor internalRequestProcessor;
ExternalRequestProcessor externalRequestProcessor;
ElevatorManager elevatorManager;
public static ElevatorSystem getInstance() {
if(elevatorSystemInstance == null) {
elevatorSystemInstance = new ElevatorSystem();
elevatorSystemInstance.internalRequestProcessor = new InternalRequestProcessor();
elevatorSystemInstance.externalRequestProcessor = new ExternalRequestProcessor();
}
return elevatorSystemInstance;
}
void initializeTheElevators(int noOfFloors,int noOfElevators) {
ElevatorManager.setupElevators(noOfFloors,noOfElevators);
elevatorManager=ElevatorManager.getElevatorManagerInstance();
}
public void sendInternalRequest(InternalRequest internalRequest){
internalRequestProcessor.addNextStop(internalRequest);
}
public void sendExteralRequest(ExternalRequest externalRequest){
externalRequestProcessor.addNextStop(externalRequest);
}
public void processRequest(){
for(int elevatorID:elevatorManager.elevatorHashMap.keySet()){
Elevator elevator = elevatorManager.elevatorHashMap.get(elevatorID);
System.out.println("Elevator ID: "+elevatorID+" : ");
elevator.elevatorController.moveElevator(elevator);
}
}
}