package osm.surveyor.task.util; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.databind.JsonNode; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Geojson extends JsonTemple { private String type = "FeatureCollection"; public void setType(String v) { this.type = v; } public JsonCrs getCrs() { return crs; } public void setCrs(JsonCrs crs) { this.crs = crs; } private JsonCrs crs; public List<JsonFeature> getFeatures() { return features; } private List<JsonFeature> features = new ArrayList<>(); public String toString() { StringBuffer sb = new StringBuffer(); boolean c = false; sb.append("{"); c = outStr(c, sb, "type", this.type); c = out(c, sb, "crs", this.crs); if (c) { sb.append(","); } sb.append("\"features\":["); boolean c2 = false; for (JsonFeature f : features) { c2 = out(c2, sb, null, f); sb.append(System.lineSeparator()); } sb.append("]"); sb.append("}"); return sb.toString(); } public void parse(JsonNode node) { setType(node.get("type").textValue()); JsonNode nodeCrs = node.get("crs"); if (nodeCrs != null) { this.crs = new JsonCrs(); this.crs.parse(nodeCrs); } JsonNode f = node.get("features"); if (f != null) { this.features = new ArrayList<JsonFeature>(); for (JsonNode f1 : f) { JsonFeature feature = new JsonFeature(); feature.parse(f1); this.features.add(feature); } } } }