const mixinafMorphia::BsonConvs
afMorphia::BsonConvs
(Service) - Converts Fantom objects to and from their BSON representation.
- defConvs
static Type:BsonConv defConvs()The default set of BSON <-> Fantom converters.
- fromBsonDoc
abstract Obj? fromBsonDoc([Str:Obj?]? bsonObj, Type? fantomType := null)Converts a BSON object to the given Fantom type.
Convenience for calling
fromBsonVal()with a cast. IffantomTypeisnullthen the obj is inspected for a_typeproperty.- fromBsonVal
abstract Obj? fromBsonVal(Obj? bsonVal, Type? fantomType := null)Converts a BSON value to the given Fantom type. If
fantomTypeisnullthen the obj is inspected for a_typeproperty, else a reasonable guess is made (and the optiondocToTypeFnis then called as a last resort.)bsonValis nullable so converters can choose whether or not to create empty lists and maps.- get
@Operator
abstract BsonConv get(Type type)Returns the
Converterinstance used to convert the given type.- make
static new make([Type:BsonConv]? converters := null, [Str:Obj?]? options := null)Returns a new
BsonConvsinstance.If
convertersisnullthendefConvsis used. Some defaults are:pickleMode : false makeEntityFn : |Type type, Field:Obj? fieldVals->Obj?| { BeanBuilder.build(type, vals) } makeBsonObjFn : |->Str:Obj? | { Str:Obj?[:] { ordered = true } } makeMapFn : |Type t->Map| { Map((t.isGeneric ? Obj:Obj?# : t).toNonNullable) { it.ordered = true } } docToTypeFn : |Str:Obj?->Type| { null } storeNullFields : false strictMode : false propertyCache : BsonPropCache()Override
makeEntityFnto have IoC create entity instances.Set
strictModetotrueto Err if the BSON contains unmapped data.pickleMode is where all non
@Transientfields are converted, regardless of any@BsonPropfacets. Data from@BsonPropfacets, however, will still honoured if defined.- propertyCache
abstract BsonPropCache propertyCache()Returns the
BsonPropCachewhich stores@BsonPropmeta for Types.- toBsonDoc
abstract [Str:Obj?]? toBsonDoc(Obj? fantomObj)Converts the given Fantom object to its BSON object representation.
Convenience for calling
toBsonVal()with a cast.- toBsonVal
abstract Obj? toBsonVal(Obj? fantomObj, Type? fantomType := null)Converts the given Fantom object to its BSON representation.
fantomObjis nullable so converters can create empty / default objects.fantomTypein casefantomObjis null, but defaults tofantomObj?.typeof.- withOptions
abstract BsonConvs withOptions(Str:Obj? newOptions)Returns a new
BsonConvswhose options are overridden with the given ones.