nus/ArrivalEvent.java
2022-08-31 12:31:30 +08:00

30 lines
848 B
Java

/**
* @author Yadunand Prem
* @version CS2030S AY22/23 Semester 2
*/
class ArrivalEvent extends BaseShopEvent {
double serviceTime;
public ArrivalEvent(double time, Customer customer, Shop shop, double serviceTime) {
super(time, customer, shop);
this.serviceTime = serviceTime;
}
@Override
public Event[] simulate() {
ShopCounter availableCounter = this.shop.getAvailableCounter();
if (availableCounter == null) {
return new Event[] { new DepartureEvent(this.getTime(), customer, shop) };
}
return new Event[] {
new ServiceBeginEvent(this.getTime(), customer, shop, this.serviceTime, availableCounter) };
}
@Override
public String toString() {
return super.toString() + String.format(": %s arrives", this.customer);
}
}