@startuml
class Geojson {
type : "FeatureCollection"
crs : JsonCrs
features : List<JsonFeature>
out() : boolean
toString() : String
parse(JsonNode)
}
Geojson *--|| JsonCrs : crs
Geojson *--|{ JsonFeature : features
class JsonCrs {
type : "name"
properties : JsonProperties
toString() : String
parse(JsonNode)
}
class JsonProperties {
name : String
path : String
id : String
version : String
toString() : String
parse(JsonNode)
}
JsonCrs *.. JsonProperties
class JsonFeature {
geometryPoint : JsonGeometryPoint
geometryLine : JsonGeometryLine
type : String
properties : JsonProperties
toString() : String
parse(JsonNode)
}
JsonFeature o..o| JsonProperties
JsonFeature o..o| JsonGeometry
interface JsonGeometry {
}
JsonGeometry <|-- JsonGeometryLine
JsonGeometry <|-- JsonGeometryPoint
class JsonGeometryLine {
type : "LineString"
coordinates : List<Point>
toString() : String
parse(JsonNode)
}
JsonGeometryLine *..|{ Point
class JsonGeometryPoint {
type : "Point"
coordinates : Point
toString() : String
parse(JsonNode)
}
JsonGeometryPoint *..|| Point
class Point {
lng : String
lnt : String
setLng(BigDecimal)
setLng(String)
setLat(BigDecimal)
setLat(String)
store()
toString() : String
parse(JsonNode)
}
Point --|> JsonNumberArray
class JsonNumberArray {
list : List<String>
toString() : String
}
@enduml