@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 ); } };
private static boolean containsMode( final Trip trip, final String mode) { for (Leg leg : trip.getLegsOnly()) { if (leg.getMode().equals( mode )) return true; } return false; } }
private static boolean tripContainsOneOfThoseModes(final Trip trip, final Collection<String> modes) { for ( Leg leg : trip.getLegsOnly() ) { if ( modes.contains( leg.getMode() ) ) return true; } return false; } }
@Override protected double calcStat(final Plan plan) { int count = 0; for (PlanElement pe : plan.getPlanElements()) { if (pe instanceof Leg && JointActingTypes.JOINT_MODES.contains( ((Leg) pe).getMode() ) ) { count++; } } return count; }
private static boolean hasLegOfMode(Plan plan, String mode) { for (PlanElement pe : plan.getPlanElements()) { if (pe instanceof Leg) { if (((Leg)pe).getMode().equals(mode)) { return true; } } } return false; } }
@Override public String getMode() { return this.dummyLeg.getMode(); }
private void replaceCarModeWithTolledCarMode(Plan plan) { for (PlanElement planElement : plan.getPlanElements()) { if (planElement instanceof Leg) { if (((Leg) planElement).getMode().equals(TransportMode.car)) { ((Leg) planElement).setMode(CAR_WITH_PAYED_AREA_TOLL); } } } }
private void replaceTolledCarModeWithCarMode(Plan plan) { for (PlanElement planElement : plan.getPlanElements()) { if (planElement instanceof Leg) { if (((Leg) planElement).getMode().equals(CAR_WITH_PAYED_AREA_TOLL)) { ((Leg) planElement).setMode("car"); } } } }
@Override public void run(Plan plan) { for (PlanElement planElement : plan.getPlanElements()) { if (planElement instanceof Leg) { Leg leg = (Leg) planElement; if (modesToDrop.contains(leg.getMode())) { leg.setRoute(null); } } } }
private boolean isVehicular(final Trip t) { // note: checking that getVehicle returns null doen't work // when allowing for null routes. Hence the duplication of the logic... final List<Leg> legs = t.getLegsOnly(); if ( legs.isEmpty() ) return false; // XXX what to do if several legs??? final Leg l = legs.get( 0 ); if ( !vehicularModes.contains( l.getMode() ) ) return false; if ( !allowNullRoutes && l.getRoute() == null ) return false; if ( l.getRoute() != null && !(l.getRoute() instanceof NetworkRoute) ) return false; return true; }
private Id getVehicle( final Trip t ) { final List<Leg> legs = t.getLegsOnly(); if ( legs.isEmpty() ) return null; // XXX what to do if several legs??? final Leg l = legs.get( 0 ); if ( !vehicularModes.contains( l.getMode() ) ) return null; if ( !allowNullRoutes && l.getRoute() == null ) return null; if ( l.getRoute() != null && !(l.getRoute() instanceof NetworkRoute) ) return null; return ((NetworkRoute) l.getRoute()).getVehicleId(); }
public void secondaryActivityFound(Activity act, Leg leg) { /* * No plan starts with secondary activity! */ this.subChains.get(subChainIndex).defineMode(leg.getMode()); this.subChains.get(subChainIndex).addAct(act); this.secondaryActFound = true; this.ttBudget += leg.getTravelTime(); this.totalTravelDistance += leg.getRoute().getDistance(); }
public LegSerializable(Leg leg) { departureTime = leg.getDepartureTime(); mode = leg.getMode(); travelTime = leg.getTravelTime(); if (leg.getRoute() != null) { if (leg.getMode().equals(TransportMode.car)) route = new NetworkRouteSerializable((NetworkRoute) leg.getRoute()); else route = new GenericRouteSerializable(leg.getRoute()); } }
@Override public DynAction computeNextAction(DynAction oldAction, double now) { PlanElement planElem = planElemIter.next(); if (planElem instanceof Activity) { Activity act = (Activity)planElem; return new IdleDynActivity(act.getType(), act.getEndTime()); } // only the 'car' mode supported right now Leg leg = (Leg)planElem; return new StaticDriverDynLeg(leg.getMode(), (NetworkRoute)leg.getRoute()); } }
private void setRandomLegMode(final Leg leg, final boolean forbidCar) { leg.setMode(chooseModeOtherThan(leg.getMode(), forbidCar)); Route route = leg.getRoute() ; if ( route != null && route instanceof NetworkRoute) { ((NetworkRoute)route).setVehicleId(null); } }
public static void copyFromTo(Leg in, Leg out) { out.setMode( in.getMode() ); out.setDepartureTime(in.getDepartureTime()); out.setTravelTime(in.getTravelTime()); if (in.getRoute() != null) { out.setRoute(in.getRoute().clone()); } AttributesUtils.copyAttributesFromTo( in , out ); }
public void testRandomChoiceWithinListedModesOnlyWorks() { ChooseRandomLegMode algo = new ChooseRandomLegMode(new String[] {TransportMode.pt, TransportMode.walk}, MatsimRandom.getRandom(), true); Plan plan = PopulationUtils.createPlan(PopulationUtils.getFactory().createPerson(Id.create(1, Person.class))); PopulationUtils.createAndAddActivityFromCoord(plan, "home", new Coord(0, 0)); Leg leg = PopulationUtils.createAndAddLeg( plan, TransportMode.car ); PopulationUtils.createAndAddActivityFromCoord(plan, "work", new Coord((double) 0, (double) 0)); String previousMode = leg.getMode(); algo.run(plan); assertSame("leg mode must have changed.", previousMode, leg.getMode()); }
public void testWalkOnlyPlan() { Plan plan = PopulationUtils.createPlan(); Coord dummyCoord = new Coord((double) 0, (double) 0); plan.addActivity(PopulationUtils.createActivityFromCoord("h", dummyCoord)); plan.addLeg(PopulationUtils.createLeg(TransportMode.transit_walk)); plan.addActivity(PopulationUtils.createActivityFromCoord("w", dummyCoord)); new TransitActsRemover().run(plan); assertEquals(3, plan.getPlanElements().size()); assertEquals(TransportMode.pt, ((Leg) plan.getPlanElements().get(1)).getMode()); }
public void testNoTransitActPlan() { Plan plan = PopulationUtils.createPlan(); Coord dummyCoord = new Coord((double) 0, (double) 0); plan.addActivity(PopulationUtils.createActivityFromCoord("h", dummyCoord)); plan.addLeg(PopulationUtils.createLeg(TransportMode.car)); plan.addActivity(PopulationUtils.createActivityFromCoord("w", dummyCoord)); new TransitActsRemover().run(plan); assertEquals(3, plan.getPlanElements().size()); assertEquals(TransportMode.car, ((Leg) plan.getPlanElements().get(1)).getMode()); }
@Override public void processEvent() { Event event; // schedule ActEndEvent event = new ActivityEndEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle .getPreviousActivity().getFacilityId(), vehicle.getPreviousActivity().getType()); eventsManager.processEvent(event); // schedule AgentDepartureEvent event = new PersonDepartureEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle.getCurrentLeg().getMode()); eventsManager.processEvent(event); }