@Override
public void run(final Plan plan) {
final List<Trip> trips = TripStructureUtils.getTrips( plan , tripRouter.getStageActivityTypes() );
for (Trip oldTrip : trips) {
final List<? extends PlanElement> newTrip =
tripRouter.calcRoute(
tripRouter.getMainModeIdentifier().identifyMainMode( oldTrip.getTripElements() ),
toFacility( oldTrip.getOriginActivity() ),
toFacility( oldTrip.getDestinationActivity() ),
calcEndOfActivity( oldTrip.getOriginActivity() , plan, tripRouter.getConfig() ),
plan.getPerson() );
putVehicleFromOldTripIntoNewTripIfMeaningful(oldTrip, newTrip);
TripRouter.insertTrip(
plan,
oldTrip.getOriginActivity(),
newTrip,
oldTrip.getDestinationActivity());
}
}