@Override public void notifyBeforeMobsim(BeforeMobsimEvent event) { eventsManager.resetHandlers(event.getIteration()); final boolean writingEventsAtAll = this.writeEventsInterval > 0; final boolean regularWriteEvents = writingEventsAtAll && ( event.getIteration()>0 && event.getIteration() % writeEventsInterval == 0 ) ; // (w/o the "writingEventsAtAll && ..." this is a division by zero when writeEventsInterval=0. kai, apr'18) final boolean earlyIteration = event.getIteration() <= writeMoreUntilIteration ; final boolean lastIteration = event.getIteration()==this.lastIteration ; if (writingEventsAtAll && (regularWriteEvents||earlyIteration || lastIteration ) ) { for (EventsFileFormat format : eventsFileFormats) { switch (format) { case xml: this.eventWriters.add(new EventWriterXML(controlerIO.getIterationFilename(event.getIteration(), Controler.FILENAME_EVENTS_XML))); break; default: log.warn("Unknown events file format specified: " + format.toString() + "."); } } for (EventWriter writer : this.eventWriters) { eventsManager.addHandler(writer); } } }
public void run() { if ( config==null ) { this.prepareConfig() ; } Scenario scenario = ScenarioUtils.loadScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); AbstractModule module = new AbstractModule(){ @Override public void install(){ bind( Scenario.class ).toInstance( scenario ); bind( EventsManager.class ).toInstance( eventsManager ); bind( EmissionModule.class ) ; } };; com.google.inject.Injector injector = Injector.createInjector(config, module ); EmissionModule emissionModule = injector.getInstance(EmissionModule.class); EventWriterXML emissionEventWriter = new EventWriterXML(emissionEventOutputFile); emissionModule.getEmissionEventsManager().addHandler(emissionEventWriter); MatsimEventsReader matsimEventsReader = new MatsimEventsReader(eventsManager); matsimEventsReader.readFile(eventsFile); emissionEventWriter.closeFile(); } }
public void run() { if ( config==null ) { this.prepareConfig() ; } Scenario scenario = ScenarioUtils.loadScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); AbstractModule module = new AbstractModule(){ @Override public void install(){ bind( Scenario.class ).toInstance( scenario ); bind( EventsManager.class ).toInstance( eventsManager ); bind( EmissionModule.class ) ; } };; com.google.inject.Injector injector = Injector.createInjector(config, module ); EmissionModule emissionModule = injector.getInstance(EmissionModule.class); EventWriterXML emissionEventWriter = new EventWriterXML(emissionEventOutputFile); emissionModule.getEmissionEventsManager().addHandler(emissionEventWriter); MatsimEventsReader matsimEventsReader = new MatsimEventsReader(eventsManager); matsimEventsReader.readFile(eventsFile); emissionEventWriter.closeFile(); } }
/** * Writes out the given event to the specified file in the XML format, * then reads the file again and makes sure the freshly read in event * has the same attributes as the original event. * * @param <T> the type/class of the event * @param eventsFile filename where to write the event into * @param event the event to test * @return the read-in event */ public static <T extends Event> T testWriteReadXml(final String eventsFile, final T event) { EventWriterXML writer = new EventWriterXML(eventsFile); writer.handleEvent(event); writer.closeFile(); assertTrue(new File(eventsFile).exists()); EventsManager events = EventsUtils.createEventsManager(); EventsCollector collector = new EventsCollector(); events.addHandler(collector); new MatsimEventsReader(events).readFile(eventsFile); assertEquals("there must be 1 event.", 1, collector.getEvents().size()); Event readEvent = collector.getEvents().iterator().next(); assertEquals("event has wrong class.", event.getClass(), readEvent.getClass()); Map<String, String> writtenAttributes = event.getAttributes(); Map<String, String> readAttributes = readEvent.getAttributes(); for (Map.Entry<String, String> attribute : writtenAttributes.entrySet()) { assertEquals("attribute '" + attribute.getKey() + "' is different after reading the event.", attribute.getValue(), readAttributes.get(attribute.getKey())); } return (T) readEvent; }
@Test public void testNullAttribute() { String filename = this.utils.getOutputDirectory() + "testEvents.xml"; EventWriterXML writer = new EventWriterXML(filename); GenericEvent event = new GenericEvent("TEST", 3600.0); event.getAttributes().put("dummy", null); writer.handleEvent(event); writer.closeFile(); Assert.assertTrue(new File(filename).exists()); EventsManager events = EventsUtils.createEventsManager(); EventsCollector collector = new EventsCollector(); events.addHandler(collector); // this is already a test: is the XML valid so it can be parsed again? new MatsimEventsReader(events).readFile(filename); Assert.assertEquals("there must be 1 event.", 1, collector.getEvents().size()); } }
PrintStream ps = new PrintStream(baos); EventsManager eventsManager1 = EventsUtils.createEventsManager(); EventWriterXML handler = new EventWriterXML(ps); eventsManager1.addHandler(handler); eventsManager1.processEvent(new RainOnPersonEvent(0, Id.createPersonId("wurst")));
/** * Some people use the ids as names, including special characters in there... so make sure attribute * values are correctly encoded when written to a file. */ @Test public void testSpecialCharacters() { String filename = this.utils.getOutputDirectory() + "testEvents.xml"; EventWriterXML writer = new EventWriterXML(filename); writer.handleEvent(new LinkLeaveEvent(3600.0, Id.create("vehicle>3", Vehicle.class), Id.create("link<2", Link.class))); writer.handleEvent(new LinkLeaveEvent(3601.0, Id.create("vehicle\"4", Vehicle.class), Id.create("link'3", Link.class))); writer.closeFile(); Assert.assertTrue(new File(filename).exists()); EventsManager events = EventsUtils.createEventsManager(); EventsCollector collector = new EventsCollector(); events.addHandler(collector); // this is already a test: is the XML valid so it can be parsed again? new MatsimEventsReader(events).readFile(filename); Assert.assertEquals("there must be 2 events.", 2, collector.getEvents().size()); LinkLeaveEvent event1 = (LinkLeaveEvent) collector.getEvents().get(0); LinkLeaveEvent event2 = (LinkLeaveEvent) collector.getEvents().get(1); Assert.assertEquals("link<2", event1.getLinkId().toString()); Assert.assertEquals("vehicle>3", event1.getVehicleId().toString()); Assert.assertEquals("link'3", event2.getLinkId().toString()); Assert.assertEquals("vehicle\"4", event2.getVehicleId().toString()); }
eventsFile = outputFilePath + this.scenario.getConfig().controler().getRunId() + ".noise.output_events.offline.xml.gz"; eventWriter = new EventWriterXML(eventsFile); events.addHandler(eventWriter);
EventWriterXML writer = new EventWriterXML(eventsFilename); writeEvents.addHandler(writer);
EventWriterXML writer = new EventWriterXML(eventsFileName); events.addHandler(writer);
EventWriterXML writer = new EventWriterXML(eventsFileName); events.addHandler(writer);
EventWriterXML writer = new EventWriterXML(eventsFileName); eventsManager.addHandler(writer);