@Override public void run(final Plan p) { PlanImpl plan = (PlanImpl) p; double dayTime = 0.0; double carDayTime = 0.0; double ptDayTime = 0.0; double wlkDayTime = 0.0; double bikeDayTime = 0.0; double othersDayTime = 0.0; for (PlanElement pe : plan.getPlanElements()) if (pe instanceof Leg) { Leg bl = (Leg) pe; ActTypeZrh legIntent = (ActTypeZrh) this.getLegIntent(plan, bl); double time = bl.getTravelTime() / 60.0; if (time < 0) time = 0; // if (bl.getDepartureTime() < 86400) { dayTime += time; String mode = bl.getMode(); if (TransportMode.car.equals(mode)) { carTime += time; carDayTime += time; switch (legIntent) { case home: carHomeTime += time; break; case work: carWorkTime += time; break; case education: carEducTime += time; break; case shopping: carShopTime += time; break; case leisure: carLeisTime += time; break; default: carOtherTime += time; break; } carLegTimeCounts[Math.min(100, (int) time / 2)]++; } else if (TransportMode.pt.equals(mode)) { ptTime += time; ptDayTime += time; switch (legIntent) { case home: ptHomeTime += time; break; case work: ptWorkTime += time; break; case education: ptEducTime += time; break; case shopping: ptShopTime += time; break; case leisure: ptLeisTime += time; break; default: ptOtherTime += time; break; } ptLegTimeCounts[Math.min(100, (int) time / 2)]++; } else if (TransportMode.walk.equals(mode)) { wlkTime += time; wlkDayTime += time; switch (legIntent) { case home: wlkHomeTime += time; break; case work: wlkWorkTime += time; break; case education: wlkEducTime += time; break; case shopping: wlkShopTime += time; break; case leisure: wlkLeisTime += time; break; default: wlkOtherTime += time; break; } wlkLegTimeCounts[Math.min(100, (int) time / 2)]++; } else if (TransportMode.bike.equals(mode)) { bikeTime += time; bikeDayTime += time; switch (legIntent) { case home: bikeHomeTime += time; break; case work: bikeWorkTime += time; break; case education: bikeEducTime += time; break; case shopping: bikeShopTime += time; break; case leisure: bikeLeisTime += time; break; default: bikeOtherTime += time; break; } bikeLegTimeCounts[Math.min(100, (int) time / 2)]++; } else { othersTime += time; othersDayTime += time; switch (legIntent) { case home: othersHomeTime += time; break; case work: othersWorkTime += time; break; case education: othersEducTime += time; break; case shopping: othersShopTime += time; break; case leisure: othersLeisTime += time; break; default: othersOtherTime += time; break; } othersLegTimeCounts[Math.min(100, (int) time / 2)]++; } } for (int i = 0; i <= Math.min(100, (int) dayTime); i++) totalDayEnRouteTimeCounts[i]++; for (int i = 0; i <= Math.min(100, (int) othersDayTime); i++) othersDayEnRouteTimeCounts[i]++; for (int i = 0; i <= Math.min(100, (int) carDayTime); i++) carDayEnRouteTimeCounts[i]++; for (int i = 0; i <= Math.min(100, (int) ptDayTime); i++) ptDayEnRouteTimeCounts[i]++; for (int i = 0; i <= Math.min(100, (int) wlkDayTime); i++) wlkDayEnRouteTimeCounts[i]++; for (int i = 0; i <= Math.min(100, (int) bikeDayTime); i++) bikeDayEnRouteTimeCounts[i]++; }