
geotrellis.spark.io.LayerHeader.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of geotrellis-spark_2.10 Show documentation
Show all versions of geotrellis-spark_2.10 Show documentation
GeoTrellis is an open source geographic data processing engine for high performance applications.
The newest version!
package geotrellis.spark.io
import spray.json._
import spray.json.DefaultJsonProtocol._
/** Base trait for layer headers that store location information for a saved layer */
trait LayerHeader {
def format: String
def keyClass: String
def valueClass: String
}
object LayerHeader {
implicit object LayeHeaderFormat extends RootJsonFormat[LayerHeader] {
def write(md: LayerHeader) =
JsObject(
"format" -> JsString(md.format),
"keyClass" -> JsString(md.keyClass),
"valueClass" -> JsString(md.valueClass)
)
def read(value: JsValue): LayerHeader =
value.asJsObject.getFields("format", "keyClass", "valueClass") match {
case Seq(JsString(_format), JsString(_keyClass), JsString(_valueClass)) =>
new LayerHeader {
val format = _format
val keyClass = _keyClass
val valueClass = _valueClass
}
case _ =>
throw new DeserializationException(s"LayerHeader expected, got: $value")
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy