@Override public void handleEvent(PersonEntersVehicleEvent event) { Double startWaitingTime = agentsWaitingData.get(event.getPersonId()); if(startWaitingTime!=null) { int legs = 0, currentLeg = agentsCurrentLeg.get(event.getPersonId()); PLAN_ELEMENTS: for(PlanElement planElement:population.getPersons().get(event.getPersonId()).getSelectedPlan().getPlanElements()) if(planElement instanceof Leg) { if(currentLeg==legs) { Route route = (((Leg)planElement).getRoute()); ExperimentalTransitRoute eRoute = (ExperimentalTransitRoute) new ExperimentalTransitRouteFactory().createRoute(route.getStartLinkId(), route.getEndLinkId()); eRoute.setStartLinkId(route.getStartLinkId()); eRoute.setEndLinkId(route.getEndLinkId()); eRoute.setRouteDescription(route.getRouteDescription()); WaitTimeData data = waitTimes.get(new Tuple<Id<TransitLine>, Id<TransitRoute>>(eRoute.getLineId(), eRoute.getRouteId())).get(eRoute.getAccessStopId()); data.addWaitTime((int) (startWaitingTime/timeSlot), event.getTime()-startWaitingTime); agentsWaitingData.remove(event.getPersonId()); break PLAN_ELEMENTS; } else legs++; } } }
@Override public void handleEvent(PersonStuckEvent event) { Double startWaitingTime = agentsWaitingData.get(event.getPersonId()); if(startWaitingTime!=null) { int legs = 0, currentLeg = agentsCurrentLeg.get(event.getPersonId()); PLAN_ELEMENTS: for(PlanElement planElement:population.getPersons().get(event.getPersonId()).getSelectedPlan().getPlanElements()) if(planElement instanceof Leg) { if(currentLeg==legs) { Route route = ((Leg)planElement).getRoute(); ExperimentalTransitRoute eRoute = (ExperimentalTransitRoute) new ExperimentalTransitRouteFactory().createRoute(route.getStartLinkId(), route.getEndLinkId()); eRoute.setStartLinkId(route.getStartLinkId()); eRoute.setEndLinkId(route.getEndLinkId()); eRoute.setRouteDescription(route.getRouteDescription()); WaitTimeData data = waitTimes.get(new Tuple<Id<TransitLine>, Id<TransitRoute>>(eRoute.getLineId(), eRoute.getRouteId())).get(eRoute.getAccessStopId()); if(data!=null) data.addWaitTime((int) (startWaitingTime/timeSlot), event.getTime()-startWaitingTime); agentsWaitingData.remove(event.getPersonId()); break PLAN_ELEMENTS; } else legs++; } } }
public void testSetRouteDescription_PtRoute() { ExperimentalTransitRoute route = new ExperimentalTransitRoute(null, null); route.setRouteDescription("PT1===5===11===1980===1055"); assertEquals("5", route.getAccessStopId().toString()); assertEquals("11", route.getLineId().toString()); assertEquals("1980", route.getRouteId().toString()); assertEquals("1055", route.getEgressStopId().toString()); assertEquals("PT1===5===11===1980===1055", route.getRouteDescription()); }
public void testSetRouteDescription_PtRouteWithDescription() { ExperimentalTransitRoute route = new ExperimentalTransitRoute(null, null); route.setRouteDescription("PT1===5===11===1980===1055===this is a===valid route"); assertEquals("5", route.getAccessStopId().toString()); assertEquals("11", route.getLineId().toString()); assertEquals("1980", route.getRouteId().toString()); assertEquals("1055", route.getEgressStopId().toString()); assertEquals("PT1===5===11===1980===1055===this is a===valid route", route.getRouteDescription()); }
public void testSetRouteDescription_NonPtRoute() { ExperimentalTransitRoute route = new ExperimentalTransitRoute(null, null); route.setRouteDescription("23 42 7 21"); assertNull(route.getAccessStopId()); assertNull(route.getLineId()); assertNull(route.getEgressStopId()); assertEquals("23 42 7 21", route.getRouteDescription()); } }