object BSONHandler
BSONHandler factories
- Companion:
- class
Value members
Concrete methods
Handler factory.
Handler factory.
import reactivemongo.api.bson.{ BSONHandler, BSONString }
case class Foo(value: String)
val foo: BSONHandler[Foo] = BSONHandler(
{ _ => Foo("value") },
{ (f: Foo) => BSONString(f.value) }
)
def collect[T](read: PartialFunction[BSONValue, T], write: PartialFunction[T, BSONValue]): BSONHandler[T]
Creates a BSONHandler based on the given read
and write
functions.
Creates a BSONHandler based on the given read
and write
functions.
import reactivemongo.api.bson.{ BSONHandler, BSONInteger }
val intToStrCodeHandler = BSONHandler.collect[String](
read = {
case BSONInteger(0) => "zero"
case BSONInteger(1) => "one"
},
write = {
case "zero" => BSONInteger(0)
case "one" => BSONInteger(1)
})
intToStrCodeHandler.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeHandler.readOpt(BSONInteger(3)) // None (as failed)
intToStrCodeHandler.writeTry("one") // Success(BSONInteger(1))
intToStrCodeHandler.writeOpt("3") // None (as failed)
Returns a BSON handler for a type T
,
from the given safe read
and write
functions.
Returns a BSON handler for a type T
,
from the given safe read
and write
functions.
import scala.util.{ Failure, Success }
import reactivemongo.api.bson.{ BSONHandler, BSONInteger }
case class Foo(age: Int)
val handler: BSONHandler[Foo] = BSONHandler.from[Foo](
read = {
case BSONInteger(age) => Success(Foo(age))
case _ => Failure(new IllegalArgumentException())
},
write = { foo => Success(BSONInteger(foo.age)) })
Creates a BSONHandler based on the given read
and write
functions.
Creates a BSONHandler based on the given read
and write
functions.
import reactivemongo.api.bson.{ BSONHandler, BSONInteger }
val intToStrCodeHandler = BSONHandler.option[String](
read = {
case BSONInteger(0) => Some("zero")
case BSONInteger(1) => Some("one")
case _ => None
},
write = {
case "zero" => Some(BSONInteger(0))
case "one" => Some(BSONInteger(1))
case _ => None
})
intToStrCodeHandler.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeHandler.readOpt(BSONInteger(3)) // None (as failed)
intToStrCodeHandler.writeTry("one") // Success(BSONInteger(1))
intToStrCodeHandler.writeOpt("3") // None (as failed)
Givens
Inherited givens
Implicits
Implicits
Returns a BSON handler for a type T
,
provided there are a writer and a reader for it.
Returns a BSON handler for a type T
,
provided there are a writer and a reader for it.
import reactivemongo.api.bson.{ BSONHandler, BSONReader, BSONWriter }
def foo[T](
implicit r: BSONReader[T], w: BSONWriter[T]): BSONHandler[T] =
BSONHandler.provided[T]