public boolean pickUpPassenger(PassengerPickupActivity pickupActivity, MobsimDriverAgent driver,
PassengerRequest request, double now) {
Id<Link> linkId = driver.getCurrentLinkId();
MobsimPassengerAgent passenger = passengersByRequestId.get(request.getId());
if (passenger.getCurrentLinkId() != linkId || passenger.getState() != State.LEG || !passenger.getMode()
.equals(mode)) {
awaitingPickupStorage.storeAwaitingPickup(request, pickupActivity);
return false;
}
if (internalInterface.unregisterAdditionalAgentOnLink(passenger.getId(), driver.getCurrentLinkId()) == null) {
awaitingPickupStorage.storeAwaitingPickup(request, pickupActivity);
return false;
}
MobsimVehicle mobVehicle = driver.getVehicle();
mobVehicle.addPassenger(passenger);
passenger.setVehicle(mobVehicle);
eventsManager.processEvent(new PersonEntersVehicleEvent(now, passenger.getId(), mobVehicle.getId()));
return true;
}