@Override public void handleEvent(LinkEnterEvent event) { try { if (ptVehicles.keySet().contains(event.getVehicleId())) { PTVehicle ptVehicle = ptVehicles.get(event.getVehicleId()); ptVehicle.in = true; ptVehicle.setLinkEnterTime(event.getTime()); } else { chains .get(driverIdFromVehicleId.get(event.getVehicleId())) .setLinkEnterTime(event.getTime()); } } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); } }
@Override public void handleEvent(LinkLeaveEvent event) { try { if (ptVehicles.keySet().contains(event.getVehicleId())) { PTVehicle vehicle = ptVehicles.get(event.getVehicleId()); if (vehicle.in) vehicle.in = false; vehicle.incDistance(network.getLinks().get(event.getLinkId()).getLength()); } else { TravellerChain chain = chains.get(driverIdFromVehicleId.get(event.getVehicleId())); if (chain.inCar) { Journey journey = chain.getJourneys().getLast(); journey.incrementCarDistance(network.getLinks().get(event.getLinkId()).getLength()); } } } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); } }
@Override public void handleEvent(PersonLeavesVehicleEvent event) { if (transitDriverIds.contains(event.getPersonId())) return; try { if (ptVehicles.keySet().contains(event.getVehicleId())) { TravellerChain chain = chains.get(event.getPersonId()); chain.traveledVehicle = true; PTVehicle vehicle = ptVehicles.get(event.getVehicleId()); double stageDistance = vehicle.removePassenger(event.getPersonId()); Trip trip = chain.getJourneys().getLast().getTrips().getLast(); trip.setDistance(stageDistance); trip.setAlightingStop(vehicle.lastStop); } else { driverIdFromVehicleId.remove(event.getVehicleId()); } } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); } }