-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueueEvent.java
More file actions
36 lines (31 loc) · 1.2 KB
/
QueueEvent.java
File metadata and controls
36 lines (31 loc) · 1.2 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
class QueueEvent extends Event {
private final Server server;
private final double addtnWaitingTime;
QueueEvent(double time, double waitingTime, Customer customer, Server server) {
super(time, customer);
this.addtnWaitingTime = waitingTime;
this.server = server;
}
public double updateTotalWaitingTime(double totalWaitingTime) {
return totalWaitingTime + addtnWaitingTime;
}
public boolean hasNextEvent() {
return true;
}
public Event nextEvent(ImList<Server> serverList) {
int flag = serverList.get(server.getIndex()).checkAvailable(this.time);
if (flag != -1) {
double serviceTime = customer.getServiceTime();
return new ServeEvent(this.time, serviceTime, this.customer, flag,
serverList.get(server.getIndex()));
} else {
return new QueueEvent(this.time +
serverList.get(server.getIndex()).requiredWaitingTime(this.time),
serverList.get(server.getIndex()).requiredWaitingTime(this.time),
this.customer, serverList.get(server.getIndex()));
}
}
public String toString() {
return "";
}
}