} else if (VehicleDepartsAtFacilityEvent.EVENT_TYPE.equals(eventType)) { String delay = atts.getValue(VehicleDepartsAtFacilityEvent.ATTRIBUTE_DELAY); this.events.processEvent(new VehicleDepartsAtFacilityEvent(time, Id.create(atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_VEHICLE), Vehicle.class), Id.create(atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_FACILITY), TransitStopFacility.class), delay == null ? 0.0 : Double.parseDouble(delay))); } else if (TransitDriverStartsEvent.EVENT_TYPE.equals(eventType)) { this.events.processEvent(new TransitDriverStartsEvent(time, Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_DRIVER_ID), Person.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_VEHICLE_ID), Vehicle.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_TRANSIT_LINE_ID), TransitLine.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_TRANSIT_ROUTE_ID), TransitRoute.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_DEPARTURE_ID), Departure.class)));
private void depart(final double now) { double delay = now - this.getDeparture().getDepartureTime(); if (this.isBadDouble(this.getDeparture().getDepartureTime())){ //this is the case if the next stop is null delay = 0; } if (! this.isBadDouble(this.currentStop.getDepartureOffset())){ delay = delay - this.currentStop.getDepartureOffset(); } else if (! this.isBadDouble(this.currentStop.getArrivalOffset()) ){ delay = delay - this.currentStop.getArrivalOffset(); } else { log.warn("Could not calculate delay!"); } eventsManager.processEvent(new VehicleDepartsAtFacilityEvent(now, this.vehicle.getVehicle().getId(), this.currentStop.getStopFacility().getId(), delay)); this.nextStop = (stopIterator.hasNext() ? stopIterator.next() : null); if(this.nextStop == null) { assertVehicleIsEmpty(); } this.currentStop = null; }
public void testWriteReadXml() { VehicleDepartsAtFacilityEvent event = new VehicleDepartsAtFacilityEvent(Time.parseTime("10:55:00"), Id.create(5, Vehicle.class), Id.create(11, TransitStopFacility.class), -1.2); VehicleDepartsAtFacilityEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event); assertEquals(Time.parseTime("10:55:00"), event2.getTime(), EPSILON); assertEquals(Id.create(5, Vehicle.class), event2.getVehicleId()); assertEquals(Id.create(11, TransitStopFacility.class), event2.getFacilityId()); assertEquals(Double.valueOf(-1.2), Double.valueOf(event2.getDelay())); } }
tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.0*3600+10, vehicleIdDep1, stop1.getId(), 0)); tl.handleEvent(new PersonEntersVehicleEvent(7.1*3600, Id.create(1, Person.class), vehicleIdDep1)); tl.handleEvent(new PersonEntersVehicleEvent(7.1*3600+5, Id.create(2, Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.1*3600+25, vehicleIdDep1, stop2.getId(), 0)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.2*3600+20, vehicleIdDep1, stop3.getId(), 0)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.3*3600+5, vehicleIdDep1, stop4.getId(), 0)); tl.handleEvent(new PersonLeavesVehicleEvent(7.4*3600-5, Id.create(1, Person.class), vehicleIdDep1)); tl.handleEvent(new PersonLeavesVehicleEvent(7.4*3600, Id.create(3, Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.4*3600+5, vehicleIdDep1, stop1.getId(), 0));