super.startTag(name, atts, context); return;
final Stack<String> context) { if (PLANS.equals(name)) { startPlans(atts); } else if (PERSON.equals(name)) { startPerson(atts); } else if (TRAVELCARD.equals(name)) { startTravelcard(atts); } else if (DESIRES.equals(name)) { log.error("Desires are no longer supported and will be ignored."); log.warn("<activityspace> will be ignored."); } else if (ACTIVITY.equals(name)) { startActivityFacility(atts); } else if (LOCATION.equals(name)) { startLocation(atts); } else if (CAPACITY.equals(name)) { log.warn("<capacity> will be ignored!"); log.warn("<opentime> will be ignored!"); } else if (PLAN.equals(name)) { startPlan(atts); } else if (ACT.equals(name)) { startAct(atts); } else if (LEG.equals(name)) { startLeg(atts); } else if (ROUTE.equals(name)) { startRoute(atts); } else { throw new RuntimeException(this + "[tag=" + name + " not known or not supported]");
final Population population = scenario.getPopulation(); PopulationReaderMatsimV4 parser = new PopulationReaderMatsimV4(scenario); parser.startTag("plans", new AttributesBuilder().add("name", "").get(), context); parser.startTag("person", new AttributesBuilder().add("id", "981").get(), context); parser.startTag("plan", new AttributesBuilder().add("selected", "yes").get(), context); parser.startTag("act", new AttributesBuilder().add("type", "h").add("x", "125").add("y", "500").add("end_time", "08:00:00").get(), context); parser.endTag("act", null, context); parser.startTag("leg", new AttributesBuilder().add("mode", "pt").get(), context); parser.startTag("route", new AttributesBuilder().add("dist", "1980.11").get(), context); parser.endTag("route", " ", context); parser.endTag("leg", null, context); parser.startTag("act", new AttributesBuilder().add("type", "w").add("x", "500").add("y", "1100").add("start_time", "10:05:00").get(), context); parser.endTag("act", null, context); parser.endTag("plan", null, context); parser.endTag("person", null, context); parser.endTag("plans", null, context);
@Test public void testRepeatingActs() { final MutableScenario scenario = (MutableScenario) ScenarioUtils.createScenario(ConfigUtils.createConfig()); PopulationReaderMatsimV4 reader = new PopulationReaderMatsimV4(scenario); final Population population = scenario.getPopulation(); String str = "<?xml version=\"1.0\" ?>"+ "<!DOCTYPE plans SYSTEM \"http://www.matsim.org/files/dtd/plans_v4.dtd\">"+ "<plans>"+ "<person id=\"1\">"+ " <plan>"+ " <act type=\"h\" x=\"-25000\" y=\"0\" end_time=\"06:00\" />"+ " <leg mode=\"walk\" />"+ " <act type=\"w\" x=\"10000\" y=\"0\" dur=\"03:30\" />"+ " <act type=\"l\" x=\"10000\" y=\"0\" dur=\"00:30\" />"+ " </plan>"+ "</person>"+ "</plans>"; reader.parse(new ByteArrayInputStream(str.getBytes())); Plan plan = population.getPersons().get(Id.create(1, Person.class)).getSelectedPlan(); Assert.assertEquals(4, plan.getPlanElements().size()); Assert.assertTrue(plan.getPlanElements().get(0) instanceof Activity); Assert.assertTrue(plan.getPlanElements().get(1) instanceof Leg); Assert.assertTrue(plan.getPlanElements().get(2) instanceof Activity); Assert.assertTrue(plan.getPlanElements().get(3) instanceof Activity); }
this.curract = PopulationUtils.createAndAddActivityFromLinkId(this.currplan, atts.getValue(ATTR_TYPE), linkId1); if ((atts.getValue("x") != null) && (atts.getValue("y") != null)) { final Coord coord = parseCoord( atts ); this.curract.setCoord(coord); final Coord coord = parseCoord( atts ); this.curract = PopulationUtils.createAndAddActivityFromCoord(this.currplan, atts.getValue(ATTR_TYPE), coord); } else {
new MatsimNetworkReader(scenario.getNetwork()).readFile("test/scenarios/equil/network.xml"); MatsimXmlParser parser = new PopulationReaderMatsimV4(scenario); XmlParserTestHelper tester = new XmlParserTestHelper(parser);
final Population population = scenario.getPopulation(); PopulationReaderMatsimV4 reader = new PopulationReaderMatsimV4(scenario); reader.startTag("plans", AttributesBuilder.getEmpty(), context); reader.startTag("person", new AttributesBuilder().add("id", "2").get(), context); reader.startTag("plan", new AttributesBuilder().add("selected", "no").get(), context); reader.startTag("act", new AttributesBuilder().add("type", "h").add("link", "3").get(), context); reader.endTag("act", "", context); reader.startTag("leg", new AttributesBuilder().add("mode", "car").get(), context); reader.endTag("leg", "", context); reader.startTag("act", new AttributesBuilder().add("type", "h").add("link", "2").get(), context); reader.endTag("plan", "", context); reader.endTag("person", "", context); reader.endTag("plans", "", context);
@Test public void testRepeatingLegs() { final MutableScenario scenario = (MutableScenario) ScenarioUtils.createScenario(ConfigUtils.createConfig()); PopulationReaderMatsimV4 reader = new PopulationReaderMatsimV4(scenario); final Population population = scenario.getPopulation(); String str = "<?xml version=\"1.0\" ?>"+ "<!DOCTYPE plans SYSTEM \"http://www.matsim.org/files/dtd/plans_v4.dtd\">"+ "<plans>"+ "<person id=\"1\">"+ " <plan>"+ " <act type=\"h\" x=\"-25000\" y=\"0\" end_time=\"06:00\" />"+ " <leg mode=\"walk\" />"+ " <leg mode=\"pt\" />"+ " <leg mode=\"walk\" />"+ " <act type=\"w\" x=\"10000\" y=\"0\" dur=\"03:30\" />"+ " </plan>"+ "</person>"+ "</plans>"; reader.parse(new ByteArrayInputStream(str.getBytes())); Plan plan = population.getPersons().get(Id.create(1, Person.class)).getSelectedPlan(); Assert.assertEquals(5, plan.getPlanElements().size()); Assert.assertTrue(plan.getPlanElements().get(0) instanceof Activity); Assert.assertTrue(plan.getPlanElements().get(1) instanceof Leg); Assert.assertTrue(plan.getPlanElements().get(2) instanceof Leg); Assert.assertTrue(plan.getPlanElements().get(3) instanceof Leg); Assert.assertTrue(plan.getPlanElements().get(4) instanceof Activity); }
@Test public void testReadingRoutesWithoutType() { final MutableScenario scenario = (MutableScenario) ScenarioUtils.createScenario(ConfigUtils.createConfig()); PopulationReaderMatsimV4 reader = new PopulationReaderMatsimV4(scenario); final Population population = scenario.getPopulation(); "</person>"+ "</plans>"; reader.parse(new ByteArrayInputStream(str.getBytes()));