// package Ġio . ca ff inated s quir rel . syn opsis . services Ċ // Ċ // import Ġcom . mongodb . Mongo Client Ċ // import Ġcom . mongodb . client . model . Filters Ċ // import Ġio . ca ff inated s quir rel . syn opsis . commands . Get Test Query Ċ // import Ġio . ca ff inated s quir rel . syn opsis . domain . Test Entity Ċ // import Ġorg . bson . code cs . configuration . Codec Regist ries . from Providers Ċ // import Ġorg . bson . code cs . configuration . Codec Regist ries . from Regist ries Ċ // import Ġorg . bson . code cs . pojo . Po jo Codec Provider Ċ // import Ġorg . bson . conversions . B son Ċ // import Ġorg . bson . types . ObjectId Ċ // import Ġorg . lit ote . km ongo . findOne Ċ // import Ġorg . lit ote . km ongo . findOne ById Ċ // import Ġorg . lit ote . km ongo . with Document Class Ċ // import Ġjavax . inject . Inject Ċ // import Ġjavax . inject . Singleton Ċ // Ċ //@ Singleton Ċ // class ĠTest DataService Ġ{ Ċ // Ċ // ĠĠĠ Ġ@ Inject Ċ // ĠĠĠ Ġprivate Ġlateinit Ġvar Ġmongo Client : ĠMongo Client Ċ // Ċ // ĠĠĠ Ġ@ Inject Ċ // ĠĠĠ Ġprivate Ġlateinit Ġvar Ġdatabase Config : ĠDatabase Config Ċ // Ċ // ĠĠĠ Ġprivate Ġval Ġdb Ġby Ġlazy Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġcodec Registry Ġ= Ġfrom Regist ries ( Mongo Client . getDefault Codec Registry (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Providers ( Po jo Codec Provider Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. builder () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. register ( Test Entity :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ())) Ċ // ĠĠĠĠĠĠĠ Ġmongo Client . get Database ( database Config . get Database Name ()). with Codec Registry ( codec Registry ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġval Ġtest Entity Java Class Ġ= ĠTest Entity :: class . java Ċ // Ċ // ĠĠĠ Ġprivate Ġval Ġtest Collection Name Ġ= Ġ" test " Ċ // Ċ // ĠĠĠ Ġfun Ġwrite Test ( test Entity : ĠTest Entity ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdb . get Collection ( test Collection Name , Ġtest Entity Java Class ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert One ( test Entity ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġget Test ById ( test Id : ĠString ): ĠTest Entity ? Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġdb . get Collection ( test Collection Name ). with Document Class < Test Entity >() Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne ById ( ObjectId ( test Id )) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġget Test By Filter ( test Query : ĠGet Test Query ): ĠTest Entity Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġfilter : ĠB son Ġ= Ġwhen Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtest Query . projectId Ġ!= Ġnull Ġ-> Ġ{ ĠFilters . eq (" projectId ", ĠObjectId ( test Query . projectId . toString ())) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ Ġthrow ĠException (" Query Ġmust Ġhave Ġat Ġleast Ġone Ġnon - null Ġvalue !") Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġdb . get Collection ( test Collection Name ). with Document Class < Test Entity >() Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne ( filter ) !! Ċ // ĠĠĠ Ġ} Ċ //}