@Override public void handleEvent(VehicleEntersTrafficEvent event) { delegate.handleEvent(event); }
public Id<Person> getDriverOfVehicle(Id<Vehicle> vehicleId) { return vehicle2Driver.getDriverOfVehicle(vehicleId); }
@Override public void reset(final int iteration) { this.sumLength = 0.0; this.cntTrips = 0; delegate.reset(iteration); }
this.vehicles2Drivers.handleEvent((VehicleEntersTrafficEvent) o); this.vehicles2Drivers.handleEvent((VehicleLeavesTrafficEvent) o); Id<Person> driverId = this.vehicles2Drivers.getDriverOfVehicle(vehicleId) ; ScoringFunction scoringFunction = getScoringFunctionForAgent( driverId );
Vehicle2DriverEventHandler vehicle2Driver = new Vehicle2DriverEventHandler(); events.addHandler(vehicle2Driver);
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { delegate.handleEvent(event); }
@Override public void handleEvent(LinkEnterEvent event) { Id<Person> driverOfVehicle = delegate.getDriverOfVehicle(event.getVehicleId()); List<Id<Link>> route = experiencedRoutes.get(driverOfVehicle); route.add(event.getLinkId()); }
@Override public void reset(int iteration) { delegate.reset(iteration); }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { delegate.handleEvent(event); }
@Override public void handleEvent(LinkEnterEvent event) { this.linkEnteredAgents.put(delegate.getDriverOfVehicle(event.getVehicleId()), event.getLinkId()); }
@Override public void reset(int iteration) { this.linkEnteredAgents.clear(); this.lastTimeStepLinkEnteredAgents.clear(); delegate.reset(iteration); }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { delegate.handleEvent(event); }
@Override public void handleEvent(LinkLeaveEvent event) { this.removeEarliestLinkExitTimesAtTime(delegate.getDriverOfVehicle(event.getVehicleId())); }
@Override public void reset(final int iteration) { this.iteration = iteration; log.warn("found " + this.plansFound + " out of " + (this.plansFound + this.plansNotFound) + " (" + (100. * this.plansFound / (this.plansFound + this.plansNotFound)) + "%)"); log.warn("(above values may both be at zero for a couple of iterations if multiple plans per agent all have no score)"); delegate.reset(iteration); }
@Override public void handleEvent(VehicleEntersTrafficEvent event) { delegate.handleEvent(event); } }
@Override public void handleEvent(LinkEnterEvent event) { String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (ptMode2CountMap.get(ptMode) == null) { ptMode2CountMap.put(ptMode, 0.0); } double capacity; if(super.ptDriverIds.contains(delegate.getDriverOfVehicle(event.getVehicleId()))){ capacity = this.vehId2VehicleCapacity.get(event.getVehicleId()); }else{ // it's a car, which will not appear in the vehicles-list, called in updateVehicles \dr // TODO [AN] nonPtMode is not fully implemented - check that again capacity = 1; } double capacityMeterForThatLink = capacity * this.network.getLinks().get(event.getLinkId()).getLength(); ptMode2CountMap.put(ptMode, ptMode2CountMap.get(ptMode) + capacityMeterForThatLink); }
@Override public void reset(int iteration) { legs.clear(); experiencedRoutes.clear(); transitTravels.clear(); routelessTravels.clear(); transitVehicle2currentRoute.clear(); delegate.reset(iteration); }
@Override public void handleEvent(VehicleEntersTrafficEvent event) { delegate.handleEvent(event); } }
@Override public void handleEvent(LinkEnterEvent event) { CarrierAgent carrierAgent = getCarrierAgent(delegate.getDriverOfVehicle(event.getVehicleId())); if(carrierAgent == null) return; carrierAgent.handleEvent(event); }
/** * Sends {@link PersonMoneyEvent}s for all agents that must pay a toll. * This method should usually be called at the end before of an iteration. * * <strong>Important note: </strong>Do not call this method twice without * calling {@link #reset(int)} in between. Otherwise modules listening to * AgentMoneyEvents will hear them twice, i.e. the toll-disutility * may be added twice to the agents' score! * * @param time the current time the generated events are associated with * @param events the {@link EventsManager} collection, the generated events are sent to for processing */ // public void sendMoneyEvents(final double time, final EventsManager events) { // // public is currently needed. kai, sep'13 // // for (Map.Entry<Id<Person>, AgentTollInfo> entries : this.agents.entrySet()) { // events.processEvent(new PersonMoneyEvent(time, entries.getKey(), -entries.getValue().toll)); // } // } @Override public void reset(final int iteration) { this.agents.clear(); delegate.reset(iteration); }