package formats
API to automatically de-serialise MicrodataValue instances into value types and case classes.
Usage
To use simply put the Microtesia Formats API in scope (with the Microtesia API). This enriches MicrodataValue instances with the EnrichedMicrodataValue.convertTo method which you can use to parse microdata as follows:
scala> import microtesia._ import microtesia._ scala> import formats._ import formats._ scala> import scala.util.Try import scala.util.Try scala> case class Person(name: String, age: Int, adult: Boolean) defined class Person scala> MicrodataItem( Seq( ("name", MicrodataString("hello")), ("age", MicrodataString("13")), ("adult", MicrodataString("true")) ) ).convertTo[Person] res0: Try[Person] = Success(Person(hello,13,true))
- Alphabetic
- By Inheritance
- formats
- ShapelessFormats
- CollectionFormats
- RichTypeFormats
- SimpleTypeFormats
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class CannotConvert(c: Class[_], value: MicrodataValue) extends Exception with Product with Serializable
-
trait
CollectionFormats extends AnyRef
Implicit microdata formats for common collection types, including Seq and Option.
Implicit microdata formats for common collection types, including Seq and Option. This needs to be in scope to support automatic conversion of these types. It is include as part of the formats package object.
-
implicit
class
EnrichedMicrodataDocument extends AnyRef
Implicit typeclass to enrich MicrodataDocument instances with the convertRootsTo method.
-
implicit
class
EnrichedMicrodataValue extends AnyRef
Implicit typeclass to enrich MicrodataValue instances with the convertTo method.
-
trait
MicrodataFormat[T] extends AnyRef
Trait for implicit formatters to de-serialize microdata values to hard types.
Trait for implicit formatters to de-serialize microdata values to hard types. You can define custom formats as follows:
scala> import microtesia._ import microtesia._ scala> import formats._ import formats._ scala> import java.time._ import java.time._ scala> import scala.util.{Failure, Success, Try} import scala.util.{Failure, Success, Try} scala> implicit val dateFormat = new MicrodataFormat[LocalDate] { | override def read(microdata: MicrodataValue): Try[LocalDate] = microdata match { | case MicrodataString(value) => Success(LocalDate.parse(value)) | case other => Failure(CannotConvert(classOf[LocalDate], other)) | } | } dateFormat: microtesia.formats.MicrodataFormat[java.time.LocalDate] = $anon$1@4fa4e3b6 scala> MicrodataString("2016-01-01").convertTo[LocalDate] res0: Try[java.time.LocalDate] = Success(2016-01-01)
- Annotations
- @implicitNotFound( ... )
-
trait
MicrodataPropertyFormat[T] extends AnyRef
Trait for implicit formatters to de-serialize microdata properties.
Trait for implicit formatters to de-serialize microdata properties. Mostly used internally.
- Annotations
- @implicitNotFound( ... )
-
trait
RichTypeFormats extends AnyRef
Implicit microdata formats for rich data types, including URI.
Implicit microdata formats for rich data types, including URI. This needs to be in scope to support automatic conversion of these types. It is include as part of the formats package object.
-
trait
ShapelessFormats extends AnyRef
Implicit microdata formats for case classes using [shapeless].
Implicit microdata formats for case classes using [shapeless]. This needs to be in scope to support automatic conversion of case classes. It is include as part of the formats package object.
-
trait
SimpleTypeFormats extends AnyRef
Implicit microdata formats for simple types, including String or value types like Int.
Implicit microdata formats for simple types, including String or value types like Int. This needs to be in scope to support automatic conversion of these types. It is include as part of the formats package object.
Value Members
-
implicit
def
caseClassFormat[T, Repr](implicit generic: Aux[T, Repr], format: Lazy[MicrodataFormat[Repr]]): MicrodataFormat[T]
Implicit MicrodataFormat to convert MicrodataValues to case classes.
Implicit MicrodataFormat to convert MicrodataValues to case classes.
- Definition Classes
- ShapelessFormats
-
implicit
val
defaultBooleanFormat: MicrodataFormat[Boolean]
Implicit MicrodataFormat to convert multiple microdata values to Boolean.
Implicit MicrodataFormat to convert multiple microdata values to Boolean.
- Definition Classes
- SimpleTypeFormats
-
implicit
val
defaultDoubleFormat: MicrodataFormat[Double]
Implicit MicrodataFormat to convert multiple microdata values to Double.
Implicit MicrodataFormat to convert multiple microdata values to Double.
- Definition Classes
- SimpleTypeFormats
-
implicit
val
defaultFloatFormat: MicrodataFormat[Float]
Implicit MicrodataFormat to convert multiple microdata values to Float.
Implicit MicrodataFormat to convert multiple microdata values to Float.
- Definition Classes
- SimpleTypeFormats
-
implicit
val
defaultIntFormat: MicrodataFormat[Int]
Implicit MicrodataFormat to convert multiple microdata values to Int.
Implicit MicrodataFormat to convert multiple microdata values to Int.
- Definition Classes
- SimpleTypeFormats
-
implicit
val
defaultLongFormat: MicrodataFormat[Long]
Implicit MicrodataFormat to convert multiple microdata values to Long.
Implicit MicrodataFormat to convert multiple microdata values to Long.
- Definition Classes
- SimpleTypeFormats
-
implicit
val
defaultShortFormat: MicrodataFormat[Short]
Implicit MicrodataFormat to convert multiple microdata values to Short.
Implicit MicrodataFormat to convert multiple microdata values to Short.
- Definition Classes
- SimpleTypeFormats
-
implicit
val
defaultStringFormat: MicrodataFormat[String]
Implicit MicrodataFormat to convert multiple microdata values to String.
Implicit MicrodataFormat to convert multiple microdata values to String.
- Definition Classes
- SimpleTypeFormats
-
implicit
def
hlistFormat[Key <: Symbol, Value, Remaining <: HList](implicit key: Aux[Key], mfh: Lazy[MicrodataPropertyFormat[Value]], mft: Lazy[MicrodataFormat[Remaining]]): MicrodataFormat[::[FieldType[Key, Value], Remaining]]
Implicit MicrodataFormat to convert MicrodataValues to HLists.
Implicit MicrodataFormat to convert MicrodataValues to HLists.
- Definition Classes
- ShapelessFormats
-
implicit
def
listFormat[T](implicit format: MicrodataFormat[T]): MicrodataPropertyFormat[List[T]]
Implicit MicrodataFormat to convert multiple microdata properties to scala.List.
Implicit MicrodataFormat to convert multiple microdata properties to scala.List.
- Definition Classes
- CollectionFormats
-
implicit
def
optionFormat[T](implicit format: MicrodataFormat[T]): MicrodataPropertyFormat[Option[T]]
Implicit MicrodataFormat to convert optional microdata properties to scala.Option.
Implicit MicrodataFormat to convert optional microdata properties to scala.Option.
- Definition Classes
- CollectionFormats
-
implicit
def
seqFormat[T](implicit format: MicrodataFormat[T]): MicrodataPropertyFormat[Seq[T]]
Implicit MicrodataFormat to convert multiple microdata properties to scala.Seq.
Implicit MicrodataFormat to convert multiple microdata properties to scala.Seq.
- Definition Classes
- CollectionFormats
-
implicit
def
setFormat[T](implicit format: MicrodataFormat[T]): MicrodataPropertyFormat[Set[T]]
Implicit MicrodataFormat to convert multiple microdata properties to scala.Set.
Implicit MicrodataFormat to convert multiple microdata properties to scala.Set.
- Definition Classes
- CollectionFormats
-
implicit
def
simplePropertyFormat[T](implicit format: MicrodataFormat[T]): MicrodataPropertyFormat[T]
Implicit MicrodataPropertyFormat to convert simple microdata properties.
Implicit MicrodataPropertyFormat to convert simple microdata properties.
- Definition Classes
- ShapelessFormats
-
implicit
object
LinkFormat extends MicrodataFormat[URI]
Implicit MicrodataFormat to convert MicrodataValues to URI.
Implicit MicrodataFormat to convert MicrodataValues to URI.
- Definition Classes
- RichTypeFormats
-
implicit
object
HNilFormat extends MicrodataFormat[HNil]
Implicit MicrodataFormat to convert MicrodataValues to empty HLists.
Implicit MicrodataFormat to convert MicrodataValues to empty HLists.
- Definition Classes
- ShapelessFormats