@Override public SimpleFeature next() { SimpleFeature feature; try { feature = (SimpleFeature) reader.next(); } catch (Exception e) { throw new RuntimeException(e); } SimpleFeature transformedFeature = placemarkTransformer.convertFeature(feature, featureType); return transformedFeature; }
@Override public SimpleFeatureType apply(ImportTask task, DataStore dataStore, SimpleFeatureType featureType) throws Exception { return convertFeatureType(featureType); }
public SimpleFeature convertFeature(SimpleFeature old, SimpleFeatureType targetFeatureType) { SimpleFeatureBuilder fb = new SimpleFeatureBuilder(targetFeatureType); SimpleFeature newFeature = fb.buildFeature(old.getID()); FeatureDataConverter.DEFAULT.convert(old, newFeature); Map<Object, Object> userData = old.getUserData(); Object folderObject = userData.get("Folder"); if (folderObject != null) { String serializedFolders = serializeFolders(folderObject); newFeature.setAttribute("Folder", serializedFolders); } @SuppressWarnings("unchecked") Map<String, String> untypedExtendedData = (Map<String, String>) userData .get("UntypedExtendedData"); if (untypedExtendedData != null) { for (Entry<String, String> entry : untypedExtendedData.entrySet()) { if (targetFeatureType.getDescriptor(entry.getKey()) != null) { newFeature.setAttribute(entry.getKey(), entry.getValue()); } } } return newFeature; }
@Override protected void setUp() throws Exception { kmlPlacemarkTransform = new KMLPlacemarkTransform(); SimpleFeatureTypeBuilder origBuilder = new SimpleFeatureTypeBuilder(); origBuilder.setName("origtype"); origBuilder.add("name", String.class); origBuilder.add("description", String.class); origBuilder.add("LookAt", Point.class); origBuilder.add("Region", LinearRing.class); origBuilder.add("Style", FeatureTypeStyle.class); origBuilder.add("Geometry", Geometry.class); origBuilder.setDefaultGeometry("Geometry"); origType = origBuilder.buildFeatureType(); SimpleFeatureTypeBuilder transformedBuilder = new SimpleFeatureTypeBuilder(); transformedBuilder.setName("transformedtype"); transformedBuilder.add("name", String.class); transformedBuilder.add("description", String.class); transformedBuilder.add("LookAt", Point.class); transformedBuilder.add("Region", LinearRing.class); transformedBuilder.add("Style", String.class); transformedBuilder.add("Geometry", Geometry.class); transformedBuilder.setDefaultGeometry("Geometry"); transformedBuilder.add("Folder", String.class); transformedType = transformedBuilder.buildFeatureType(); }
public SimpleFeature convertFeature(SimpleFeature old, SimpleFeatureType targetFeatureType) { SimpleFeatureBuilder fb = new SimpleFeatureBuilder(targetFeatureType); SimpleFeature newFeature = fb.buildFeature(old.getID()); FeatureDataConverter.DEFAULT.convert(old, newFeature); Map<Object, Object> userData = old.getUserData(); Object folderObject = userData.get("Folder"); if (folderObject != null) { String serializedFolders = serializeFolders(folderObject); newFeature.setAttribute("Folder", serializedFolders); } @SuppressWarnings("unchecked") Map<String, String> untypedExtendedData = (Map<String, String>) userData.get("UntypedExtendedData"); if (untypedExtendedData != null) { for (Entry<String, String> entry : untypedExtendedData.entrySet()) { if (targetFeatureType.getDescriptor(entry.getKey()) != null) { newFeature.setAttribute(entry.getKey(), entry.getValue()); } } } return newFeature; }
@Override public SimpleFeature next() { SimpleFeature feature; try { feature = (SimpleFeature) reader.next(); } catch (Exception e) { throw new RuntimeException(e); } SimpleFeature transformedFeature = placemarkTransformer .convertFeature(feature, featureType); return transformedFeature; }
@Override public SimpleFeatureType apply( ImportTask task, DataStore dataStore, SimpleFeatureType featureType) throws Exception { return convertFeatureType(featureType); }
@Override public SimpleFeature apply( ImportTask task, DataStore dataStore, SimpleFeature oldFeature, SimpleFeature feature) throws Exception { SimpleFeatureType targetFeatureType = feature.getFeatureType(); SimpleFeature newFeature = convertFeature(oldFeature, targetFeatureType); feature.setAttributes(newFeature.getAttributes()); return feature; } }
public SimpleFeatureType convertParsedFeatureType( SimpleFeatureType ft, String name, Set<String> untypedAttributes) { SimpleFeatureType transformedType = kmlTransform.convertFeatureType(ft); SimpleFeatureTypeBuilder ftb = new SimpleFeatureTypeBuilder(); ftb.init(transformedType); Set<String> existringAttrNames = new HashSet<String>(); for (AttributeDescriptor ad : ft.getAttributeDescriptors()) { existringAttrNames.add(ad.getLocalName()); } for (String attr : untypedAttributes) { if (!existringAttrNames.contains(attr)) { ftb.add(attr, String.class); } } ftb.setName(name); ftb.setCRS(KML_CRS); ftb.setSRS(KML_SRS); return ftb.buildFeatureType(); }
@Override public SimpleFeature apply(ImportTask task, DataStore dataStore, SimpleFeature oldFeature, SimpleFeature feature) throws Exception { SimpleFeatureType targetFeatureType = feature.getFeatureType(); SimpleFeature newFeature = convertFeature(oldFeature, targetFeatureType); feature.setAttributes(newFeature.getAttributes()); return feature; } }
public SimpleFeatureType convertParsedFeatureType(SimpleFeatureType ft, String name, Set<String> untypedAttributes) { SimpleFeatureType transformedType = kmlTransform.convertFeatureType(ft); SimpleFeatureTypeBuilder ftb = new SimpleFeatureTypeBuilder(); ftb.init(transformedType); Set<String> existringAttrNames = new HashSet<String>(); for (AttributeDescriptor ad : ft.getAttributeDescriptors()) { existringAttrNames.add(ad.getLocalName()); } for (String attr : untypedAttributes) { if (!existringAttrNames.contains(attr)) { ftb.add(attr, String.class); } } ftb.setName(name); ftb.setCRS(KML_CRS); ftb.setSRS(KML_SRS); return ftb.buildFeatureType(); }
public void testFolders() throws Exception { SimpleFeatureBuilder fb = new SimpleFeatureBuilder(origType); List<Folder> folders = new ArrayList<Folder>(2); folders.add(new Folder("foo")); folders.add(new Folder("bar")); fb.featureUserData("Folder", folders); SimpleFeature feature = fb.buildFeature("testFolders"); SimpleFeature newFeature = kmlPlacemarkTransform.convertFeature(feature, transformedType); assertEquals("foo -> bar", newFeature.getAttribute("Folder")); } }
public void testFeatureType() throws Exception { SimpleFeatureType result = kmlPlacemarkTransform.convertFeatureType(origType); assertBinding(result, "LookAt", Point.class); assertBinding(result, "Region", LinearRing.class); assertBinding(result, "Folder", String.class); }
public void testLookAtProperty() throws Exception { SimpleFeatureBuilder fb = new SimpleFeatureBuilder(origType); GeometryFactory gf = new GeometryFactory(); Coordinate c = new Coordinate(3d, 4d); fb.set("LookAt", gf.createPoint(c)); SimpleFeature feature = fb.buildFeature("testlookat"); assertEquals( "Unexpected LookAt attribute class", Point.class, feature.getAttribute("LookAt").getClass()); SimpleFeature result = kmlPlacemarkTransform.convertFeature(feature, transformedType); assertEquals( "Invalid LookAt attribute class", Point.class, result.getAttribute("LookAt").getClass()); }
public void testGeometry() throws Exception { SimpleFeatureBuilder fb = new SimpleFeatureBuilder(origType); GeometryFactory gf = new GeometryFactory(); fb.set("Geometry", gf.createPoint(new Coordinate(3d, 4d))); SimpleFeature feature = fb.buildFeature("testgeometry"); assertEquals( "Unexpected Geometry class", Point.class, feature.getAttribute("Geometry").getClass()); assertEquals( "Unexpected default geometry", Point.class, feature.getDefaultGeometry().getClass()); SimpleFeature result = kmlPlacemarkTransform.convertFeature(feature, transformedType); assertEquals( "Invalid Geometry class", Point.class, result.getAttribute("Geometry").getClass()); assertEquals( "Unexpected default geometry", Point.class, feature.getDefaultGeometry().getClass()); }