
otrellis.geotrellis-server-stac_2.12.4.2.0.source-code.StacCollection.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of geotrellis-server-stac_2.12 Show documentation
Show all versions of geotrellis-server-stac_2.12 Show documentation
GeoTrellis Server is a set of components designed to simplify viewing, processing, and serving raster data from arbitrary sources with an emphasis on doing so in a functional style.
The newest version!
/*
* Copyright 2020 Azavea
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package geotrellis.server.stac
import cats.implicits._
import geotrellis.vector.{io => _}
import io.circe._
import io.circe.syntax._
import io.circe.refined._
final case class StacCollection(
stacVersion: String,
id: String,
title: Option[String],
description: String,
keywords: List[String],
version: String,
license: StacLicense,
providers: List[StacProvider],
extent: StacExtent,
properties: JsonObject,
links: List[StacLink]
)
object StacCollection {
implicit val encoderStacCollection: Encoder[StacCollection] =
Encoder.forProduct11(
"stac_version",
"id",
"title",
"description",
"keywords",
"version",
"license",
"providers",
"extent",
"properties",
"links"
)(
collection =>
(
collection.stacVersion,
collection.id,
collection.title,
collection.description,
collection.keywords,
collection.version,
collection.license,
collection.providers,
collection.extent,
collection.properties,
collection.links
)
)
implicit val decoderStacCollection: Decoder[StacCollection] =
Decoder.forProduct11(
"stac_version",
"id",
"title",
"description",
"keywords",
"version",
"license",
"providers",
"extent",
"properties",
"links"
)(
(
stacVersion: String,
id: String,
title: Option[String],
description: String,
keywords: Option[List[String]],
version: Option[String],
license: StacLicense,
providers: Option[List[StacProvider]],
extent: StacExtent,
properties: Option[JsonObject],
links: List[StacLink]
) =>
StacCollection(
stacVersion,
id,
title,
description,
keywords getOrElse List.empty,
version getOrElse "0.0.0-alpha",
license,
providers getOrElse List.empty,
extent,
properties getOrElse JsonObject.fromMap(Map.empty),
links
)
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy