public Collection<SimpleFeatureType> parseFeatureTypes(String typeName, File file) throws IOException { InputStream inputStream = null; try { inputStream = new FileInputStream(file); return parseFeatureTypes(typeName, inputStream); } finally { if (inputStream != null) { inputStream.close(); } } }
public Collection<SimpleFeatureType> parseFeatureTypes(String typeName, File file) throws IOException { InputStream inputStream = null; try { inputStream = new FileInputStream(file); return parseFeatureTypes(typeName, inputStream); } finally { if (inputStream != null) { inputStream.close(); } } }
public void testParseFeatureTypeMinimal() throws Exception { String kmlInput = DOC_EL + "<Placemark></Placemark></kml>"; List<SimpleFeatureType> featureTypes = kmlFileFormat.parseFeatureTypes("foo", IOUtils.toInputStream(kmlInput)); assertEquals("Unexpected number of feature types", 1, featureTypes.size()); SimpleFeatureType featureType = featureTypes.get(0); assertEquals( "Unexpected number of feature type attributes", 10, featureType.getAttributeCount()); }
public void testParseFeatureTypeNoPlacemarks() throws IOException { String kmlInput = DOC_EL + "</kml>"; try { kmlFileFormat.parseFeatureTypes("foo", IOUtils.toInputStream(kmlInput)); } catch (IllegalArgumentException e) { assertTrue(true); return; } fail("Expected Illegal Argument Exception for no features"); }
public void testReadCustomSchema() throws Exception { String kmlInput = DOC_EL + "<Schema name=\"myschema\">" + "<SimpleField type=\"int\" name=\"foo\"></SimpleField>" + "</Schema>" + "<myschema><foo>7</foo></myschema>" + "</kml>"; List<SimpleFeatureType> featureTypes = kmlFileFormat.parseFeatureTypes("custom-schema", IOUtils.toInputStream(kmlInput)); assertEquals("Unexpected number of feature types", 1, featureTypes.size()); SimpleFeatureType featureType = featureTypes.get(0); Map<Object, Object> userData = featureType.getUserData(); List<String> schemaNames = (List<String>) userData.get("schemanames"); assertEquals(1, schemaNames.size()); assertEquals("Did not find expected schema name metadata", "myschema", schemaNames.get(0)); FeatureReader<SimpleFeatureType, SimpleFeature> reader = kmlFileFormat.read(featureType, IOUtils.toInputStream(kmlInput)); SimpleFeature feature = reader.next(); assertNotNull("Expecting feature", feature); assertEquals("Invalid ext attr foo", 7, feature.getAttribute("foo")); } }
public void testReadFeatureWithNameAndDescription() throws Exception { String kmlInput = DOC_EL + "<Placemark><name>foo</name><description>bar</description></Placemark></kml>"; SimpleFeatureType featureType = kmlFileFormat.parseFeatureTypes("foo", IOUtils.toInputStream(kmlInput)).get(0); FeatureReader<SimpleFeatureType, SimpleFeature> reader = kmlFileFormat.read(featureType, IOUtils.toInputStream(kmlInput)); assertTrue("No features found", reader.hasNext()); SimpleFeature feature = reader.next(); assertNotNull("Expecting feature", feature); assertEquals("Invalid name attribute", "foo", feature.getAttribute("name")); assertEquals("Invalid description attribute", "bar", feature.getAttribute("description")); }
public void testReadFeatureWithTypedExtendedData() throws Exception { String kmlInput = DOC_EL + "<Schema name=\"myschema\">" + "<SimpleField type=\"int\" name=\"foo\"></SimpleField>" + "</Schema>" + "<Placemark>" + "<ExtendedData>" + "<SchemaData schemaUrl=\"#myschema\">" + "<SimpleData name=\"foo\">42</SimpleData>" + "</SchemaData>" + "</ExtendedData>" + "</Placemark></kml>"; SimpleFeatureType featureType = kmlFileFormat.parseFeatureTypes("foo", IOUtils.toInputStream(kmlInput)).get(0); FeatureReader<SimpleFeatureType, SimpleFeature> reader = kmlFileFormat.read(featureType, IOUtils.toInputStream(kmlInput)); assertTrue("No features found", reader.hasNext()); SimpleFeature feature = reader.next(); assertNotNull("Expecting feature", feature); assertEquals("Invalid ext attr foo", 42, feature.getAttribute("foo")); }
public void testReadFeatureWithUntypedExtendedData() throws Exception { String kmlInput = DOC_EL + "<Placemark>" + "<ExtendedData>" + "<Data name=\"foo\"><value>bar</value></Data>" + "<Data name=\"quux\"><value>morx</value></Data>" + "</ExtendedData>" + "</Placemark></kml>"; SimpleFeatureType featureType = kmlFileFormat.parseFeatureTypes("foo", IOUtils.toInputStream(kmlInput)).get(0); FeatureReader<SimpleFeatureType, SimpleFeature> reader = kmlFileFormat.read(featureType, IOUtils.toInputStream(kmlInput)); assertTrue("No features found", reader.hasNext()); SimpleFeature feature = (SimpleFeature) reader.next(); assertNotNull("Expecting feature", feature); assertEquals("Invalid ext attr foo", "bar", feature.getAttribute("foo")); assertEquals("Invalid ext attr quux", "morx", feature.getAttribute("quux")); }
public void testMultipleSchemas() throws Exception { String kmlInput = DOC_EL + "<Schema name=\"schema1\">" + "<SimpleField type=\"int\" name=\"foo\"></SimpleField>" + "</Schema>" + "<Schema name=\"schema2\">" + "<SimpleField type=\"float\" name=\"bar\"></SimpleField>" + "</Schema>" + "<Placemark>" + "<ExtendedData>" + "<SchemaData schemaUrl=\"#schema1\">" + "<SimpleData name=\"foo\">42</SimpleData>" + "</SchemaData>" + "<SchemaData schemaUrl=\"#schema2\">" + "<SimpleData name=\"bar\">4.2</SimpleData>" + "</SchemaData>" + "</ExtendedData>" + "</Placemark></kml>"; List<SimpleFeatureType> featureTypes = kmlFileFormat.parseFeatureTypes("multiple", IOUtils.toInputStream(kmlInput)); assertEquals("Unexpected number of feature types", 1, featureTypes.size()); SimpleFeatureType ft = featureTypes.get(0); FeatureReader<SimpleFeatureType, SimpleFeature> reader = kmlFileFormat.read(ft, IOUtils.toInputStream(kmlInput)); SimpleFeature feature1 = reader.next(); assertNotNull("Expecting feature", feature1); assertEquals("Invalid ext attr foo", 42, feature1.getAttribute("foo")); assertEquals("Invalid ext attr bar", 4.2f, (Float) feature1.getAttribute("bar"), 0.01); }
public void testTypedAndUntyped() throws Exception { String kmlInput = DOC_EL + "<Schema name=\"myschema\">" + "<SimpleField type=\"int\" name=\"foo\"></SimpleField>" + "</Schema>" + "<Placemark>" + "<ExtendedData>" + "<SchemaData schemaUrl=\"#myschema\">" + "<SimpleData name=\"foo\">42</SimpleData>" + "</SchemaData>" + "<Data name=\"fleem\"><value>bar</value></Data>" + "<Data name=\"quux\"><value>morx</value></Data>" + "</ExtendedData>" + "</Placemark></kml>"; List<SimpleFeatureType> featureTypes = kmlFileFormat.parseFeatureTypes( "typed-and-untyped", IOUtils.toInputStream(kmlInput)); assertEquals("Unexpected number of feature types", 1, featureTypes.size()); SimpleFeatureType featureType = featureTypes.get(0); FeatureReader<SimpleFeatureType, SimpleFeature> reader = kmlFileFormat.read(featureType, IOUtils.toInputStream(kmlInput)); SimpleFeature feature = reader.next(); assertNotNull("Expecting feature", feature); assertEquals("Invalid ext attr foo", 42, feature.getAttribute("foo")); assertEquals("bar", feature.getAttribute("fleem")); assertEquals("morx", feature.getAttribute("quux")); }
CatalogFactory factory = catalog.getFactory(); Collection<SimpleFeatureType> featureTypes = parseFeatureTypes(baseName, file); List<ImportTask> result = new ArrayList<ImportTask>(featureTypes.size()); for (SimpleFeatureType featureType : featureTypes) {
CatalogFactory factory = catalog.getFactory(); Collection<SimpleFeatureType> featureTypes = parseFeatureTypes(baseName, file); List<ImportTask> result = new ArrayList<ImportTask>(featureTypes.size()); for (SimpleFeatureType featureType : featureTypes) {
public void testExtendedUserData() throws Exception { String kmlInput = DOC_EL + "<Placemark>" + "<ExtendedData>" + "<Data name=\"foo\"><value>bar</value></Data>" + "<Data name=\"quux\"><value>morx</value></Data>" + "</ExtendedData>" + "</Placemark></kml>"; List<SimpleFeatureType> featureTypes = kmlFileFormat.parseFeatureTypes("fleem", IOUtils.toInputStream(kmlInput)); assertEquals("Unexpected number of feature types", 1, featureTypes.size()); SimpleFeatureType featureType = featureTypes.get(0); assertEquals( "Unexpected number of feature type attributes", 12, featureType.getAttributeCount()); assertEquals( "Invalid attribute descriptor", String.class, featureType.getDescriptor("foo").getType().getBinding()); assertEquals( "Invalid attribute descriptor", String.class, featureType.getDescriptor("quux").getType().getBinding()); }