@Override public String identifyMainMode(final List<? extends PlanElement> tripElements) { if ( tripElements.size() == 1 && ((Leg) tripElements.get( 0 )).getMode().equals( TransportMode.transit_walk ) ) { return TransportMode.walk; } return delegate.identifyMainMode( tripElements ); } };
@Override public String identifyMainMode( final List<? extends PlanElement> tripElements) { for (PlanElement pe : tripElements) { if ( !(pe instanceof Leg) ) continue; final String mode = ((Leg) pe).getMode(); if (mode.equals( JointActingTypes.DRIVER ) || mode.equals( JointActingTypes.PASSENGER ) ) { return mode; } } return d.identifyMainMode( tripElements ); } }
private Activity findLastDestinationOfMode( final List<Trip> tripsToSearch, final String mode) { final List<Trip> reversed = new ArrayList<>(tripsToSearch); Collections.reverse( reversed ); for (Trip trip : reversed) { if ( mode.equals( mainModeIdentifier.identifyMainMode( trip.getTripElements() ) ) ) { return trip.getDestinationActivity(); } } return null; }
private boolean containsUnknownMode(final Subtour subtour) { for (Trip trip : subtour.getTrips()) { if (!modes.contains( mainModeIdentifier.identifyMainMode( trip.getTripElements() ))) { return true; } } return false; }
@Override public String identifyMode(final Subtour subtour) { return modeIdentifier.identifyMainMode( subtour.getTrips().get( 0 ).getTripElements() ); } }
private Leg getDriverLegIfItIs(final Trip subtrip) { if ( !mainModeIdentifier.identifyMainMode( subtrip.getTripElements() ).equals( JointActingTypes.DRIVER ) ) return null; if ( subtrip.getLegsOnly().size() != 1 ) throw new RuntimeException( "unexpected driver subtrip length: "+subtrip ); return subtrip.getLegsOnly().get( 0 ); }
private Activity findFirstOriginOfMode( final List<Trip> tripsToSearch, final String mode) { for (Trip trip : tripsToSearch) { if ( mode.equals( mainModeIdentifier.identifyMainMode( trip.getTripElements() ) ) ) { return trip.getOriginActivity(); } } return null; }
private String getTransportMode(final Subtour subtour) { return mainModeIdentifier.identifyMainMode( subtour.getTrips().get( 0 ).getTripElements() ); }
@Override public void run(final Plan plan) { final List<PlanElement> planElements = plan.getPlanElements(); final List<Trip> trips = TripStructureUtils.getTrips( plan , blackList ); for ( Trip trip : trips ) { final List<PlanElement> fullTrip = planElements.subList( planElements.indexOf( trip.getOriginActivity() ) + 1, planElements.indexOf( trip.getDestinationActivity() )); final String mode = mainModeIdentifier.identifyMainMode( fullTrip ); fullTrip.clear(); fullTrip.add( PopulationUtils.createLeg(mode) ); if ( fullTrip.size() != 1 ) throw new RuntimeException( fullTrip.toString() ); } } }
private String identifyMainMode(final Trip t) { return tripRouter.getMainModeIdentifier().identifyMainMode( t.getTripElements() ); }
private boolean containsMode( final Subtour s ) { for ( Trip t : s.getTrips() ) { if ( tripRouter.getMainModeIdentifier().identifyMainMode( t.getTripElements() ).equals( mode ) ) { return true; } } return false; } }
@Override public String identifyMainMode( final List<? extends PlanElement> tripElements) { for ( PlanElement pe : tripElements ) { if ( pe instanceof Leg && ((Leg) pe).getMode().equals( JointActingTypes.PASSENGER ) ) { return TransportMode.pt; } if ( pe instanceof Leg && ((Leg) pe).getMode().equals( JointActingTypes.DRIVER ) ) { return TransportMode.car; } } return router.getMainModeIdentifier().identifyMainMode( tripElements ); } }) );
/** * Convenience method, clarifying that this can be called without giving the mode. */ public void insertActivity(MobsimAgent agent, int index, Activity activity ) { String mode = tripRouter.getMainModeIdentifier().identifyMainMode( editTrips.findCurrentTrip(agent).getTripElements() ) ; insertActivity( agent, index, activity, mode, mode ) ; }
List<Trip> trips = TripStructureUtils.getTrips(plan, stageActivities) ; for ( Trip trip : trips ) { String mode = this.mainModeIdentifier.identifyMainMode( trip.getTripElements() ) ;
private void applyChange( final Candidate whatToDo, final Plan plan) { for (Trip trip : whatToDo.subtour.getTrips()) { if ( behavior== SubtourModeChoice.Behavior.fromSpecifiedModesToSpecifiedModes ) { if (!modes.contains(mainModeIdentifier.identifyMainMode(trip.getTripElements()))) { // (ignore trips with modes that are not in "modes". MATSIM-809) continue; } } TripRouter.insertTrip( plan, trip.getOriginActivity(), Collections.singletonList(PopulationUtils.createLeg(whatToDo.newTransportMode)), trip.getDestinationActivity()); } }
String mainMode = mainModeIdentifier.identifyMainMode( trip.getTripElements() ) ; Double item = calcBeelineDistance(trip.getOriginActivity(), trip.getDestinationActivity()) ;
public String getModeOfCurrentOrNextTrip(MobsimAgent agent) { Trip trip ; if ( isAtRealActivity( agent ) ) { Activity activity = (Activity) WithinDayAgentUtils.getCurrentPlanElement(agent) ; trip = editTrips.findTripAfterActivity(WithinDayAgentUtils.getModifiablePlan(agent), activity) ; } else { trip = editTrips.findCurrentTrip(agent) ; } return tripRouter.getMainModeIdentifier().identifyMainMode(trip.getTripElements()) ; } public void flushEverythingBeyondCurrent(MobsimAgent agent) {
String originActivityType = trip.getOriginActivity().getType(); String destinationActivityType = trip.getDestinationActivity().getType(); String mainMode = mainModeIdentifier.identifyMainMode(trip.getTripElements());
private static Iterable<Record> countTrips(final Population population) { final QueryableSet records = new QueryableSet(); for ( Person person : population.getPersons().values() ) { final Plan plan = person.getSelectedPlan(); for ( Trip trip : TripStructureUtils.getTrips( plan , STAGES ) ) { final Record r = records.getOrAddIfNotThere( new Record( trip.getOriginActivity().getType(), trip.getDestinationActivity().getType(), MODE_IDENTIFIER.identifyMainMode( trip.getTripElements() ) ) ); r.count++; } } return records; }
public PlanElement removeActivity(MobsimAgent agent, int index, String mode) { Plan plan = WithinDayAgentUtils.getModifiablePlan(agent) ; List<PlanElement> planElements = plan.getPlanElements() ; checkIfNotInPastOrCurrent(agent, index); final Trip tripBefore = TripStructureUtils.findTripEndingAtActivity( (Activity) planElements.get(index),plan,tripRouter.getStageActivityTypes() ); final Trip tripAfter = TripStructureUtils.findTripStartingAtActivity( (Activity)planElements.get(index),plan,tripRouter.getStageActivityTypes() ); if ( mode==null ) { final String mainModeBefore = tripRouter.getMainModeIdentifier().identifyMainMode( tripBefore.getTripElements() ); final String mainModeAfter = tripRouter.getMainModeIdentifier().identifyMainMode( tripAfter.getTripElements() ); if ( mainModeBefore.equals( mainModeAfter ) ) { mode = mainModeBefore ; } else { throw new ReplanningException("mode not given and mode before removed activity != mode after removed activity; don't know which mode to use") ; } } PlanElement pe = planElements.remove(index) ; if ( checkIfTripHasAlreadyStarted( agent, tripBefore.getTripElements() ) ) { editTrips.replanCurrentTrip(agent, mobsim.getSimTimer().getTimeOfDay() , mode); } else { editTrips.insertEmptyTrip(plan, tripBefore.getOriginActivity(), tripAfter.getDestinationActivity(), mode ) ; } WithinDayAgentUtils.resetCaches(agent); this.mobsim.rescheduleActivityEnd(agent); return pe ; } public final void rescheduleActivityEndtime( MobsimAgent agent, int index, double newEndTime ) {