-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServeEvent.java
More file actions
27 lines (23 loc) · 940 Bytes
/
ServeEvent.java
File metadata and controls
27 lines (23 loc) · 940 Bytes
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
class ServeEvent extends Event {
private final Server server;
private final Event event;
public ServeEvent(Event event, Server server) {
super(event.customer, event.eventTime);
this.event = event;
this.server = server;
}
@Override
public Pair<Maybe<Event>, Pair<Shop, Stats>> next(Shop shop, Stats stats) {
double serviceTime = shop.getTime();
return new Pair<Maybe<Event>, Pair<Shop, Stats>>(Maybe.of(new DoneEvent(this,
this.customer.serveTill(serviceTime))),
new Pair<Shop, Stats>(shop
.update(shop.getUpdatedServer(this.server)
.serve(this.customer, serviceTime)),stats.customerServed(this.customer.waitingTime())));
}
@Override
public String toString() {
return String.format("%.3f", this.eventTime) +
" " + customer.toString() + " serve by " + server.toString();
}
}