public void simulate(ArrayList<Passenger> exitedPassengers, int time) { if (hasArrivedTrain(time)) { int officeArrivingTime; int ticketingWaitingTime; int ticketingTime; int platformArrivingTime; for (int i = 0; i < waitingPassengers.size(); i++) { Passenger passenger = waitingPassengers.get(i); officeArrivingTime = passenger.getOfficeArrivalTime(); ticketingWaitingTime = passenger.getTicketingWaitingTime(); ticketingTime = passenger.getTicketingTime(); platformArrivingTime = officeArrivingTime + ticketingWaitingTime + ticketingTime; passenger.setTrainWaitingTime(time - platformArrivingTime); int travelTime = path.getTravelTime(passenger.getStartPoint(), passenger.getEndPoint()); passenger.setDestinationArrivalTime(time + travelTime); } dequeueAll(exitedPassengers); } }