jvmMain.io.data2viz.geojson.jackson.GeoJsonObject.kt Maven / Gradle / Ivy
package io.data2viz.geojson.jackson
import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.annotation.JsonInclude.Include
import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id
import java.io.Serializable
import java.util.Arrays
@JsonTypeInfo(property = "type", use = Id.NAME)
@JsonSubTypes(
JsonSubTypes.Type(FeatureCollection::class),
JsonSubTypes.Type(Feature::class),
JsonSubTypes.Type(MultiPolygon::class),
JsonSubTypes.Type(Polygon::class),
JsonSubTypes.Type(GeometryCollection::class),
JsonSubTypes.Type(MultiLineString::class),
JsonSubTypes.Type(MultiPoint::class),
JsonSubTypes.Type(LineString::class),
JsonSubTypes.Type(Point::class)
)
@JsonInclude(Include.NON_NULL)
abstract class GeoJsonObject: Serializable {
var crs: Crs? = null
var bbox: DoubleArray? = null
abstract fun accept(geoJsonObjectVisitor: GeoJsonObjectVisitor): T
override fun equals(o: Any?): Boolean {
if (this === o)
return true
if (o == null || this::class != o::class)
return false
val that = o as GeoJsonObject
return if (if (crs != null) crs != that.crs else that.crs != null) false else Arrays.equals(bbox, that.bbox)
}
override fun hashCode(): Int {
var result = crs?.hashCode() ?: 0
result = 31 * result + if (bbox != null) Arrays.hashCode(bbox) else 0
return result
}
override fun toString(): String = "GeoJsonObject{}"
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy