package Ġeu . ye ger . k offee . utility Ċ Ċ import Ġcom . mongodb . client . model . Filters Ċ import Ġcom . mongodb . client . model . Update Options Ċ import Ġcom . mongodb . client . model . Updates Ċ import Ġeu . ye ger . k offee . model . domain . Entity Ċ import Ġorg . bson . conversions . B son Ċ import Ġorg . lit ote . km ongo . coroutine . Coroutine Collection Ċ import Ġorg . lit ote . km ongo . eq Ċ import Ġorg . lit ote . km ongo . path Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* ĠUp ser ts Ġan Ġ[ Entity ]. Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġtarget Ġcollection . Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġthe Ġ[ Entity ]. Ċ Ġ* Ġ@ param Ġentity ĠThe Ġ[ Entity ] Ġto Ġbe Ġupsert ed . Ċ Ġ* Ġ@ param Ġoptions ĠThe Ġoptions Ġfor Ġup ser ting . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ suspend Ġfun Ġ< T Ġ: ĠEntity > ĠCor outine Collection < T >. upsert ( entity : ĠT , Ġoptions : ĠUpdate Options Ġ= ĠUpdate Options ()) Ġ= ĊĠĠĠ Ġupdate One ById ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġentity . id , ĊĠĠĠĠĠĠĠ Ġupdate Ġ= Ġentity , ĊĠĠĠĠĠĠĠ Ġoptions Ġ= Ġoptions . upsert ( true ) ĊĠĠĠ Ġ) Ċ Ċ /** Ċ Ġ* ĠUpdates Ġan Ġ[ Entity ] Ġby Ġits Ġid . Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġtarget Ġcollection . Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġthe Ġ[ Entity ]. Ċ Ġ* Ġ@ param Ġid ĠThe Ġid Ġof Ġthe Ġ[ Entity ]. Ċ Ġ* Ġ@ param Ġupdate ĠThe Ġupdate ĠB son . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ suspend Ġfun Ġ< T Ġ: ĠEntity > ĠCor outine Collection < T >. update ById ( id : ĠString , Ġupdate : ĠB son ) Ġ= ĊĠĠĠ Ġfind One AndUpdate ( filter Ġ= ĠEntity :: id Ġeq Ġid , Ġupdate ) Ċ Ċ /** Ċ Ġ* ĠCreates Ġan Ġupdate ĠB son Ġfor Ġincrement ing Ġnumbers . Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġtarget Ġ[ K Property ]. Ċ Ġ* Ġ@ param Ġamount ĠThe Ġamount Ġto Ġincrement Ġby . Ċ Ġ* Ġ@ return ĠThe Ġupdate Ġbson . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ infix Ġfun ĠK Property < Number ?> . increment By ( amount : ĠNumber ): ĠB son Ġ= ĠUpdates . inc ( this . path (), Ġamount ) Ċ Ċ /** Ċ Ġ* ĠCreates Ġan Ġupdate ĠB son Ġfor Ġpushing Ġelements . Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġtarget Ġ[ K Property ]. Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġthe Ġelement . Ċ Ġ* Ġ@ param Ġelement ĠThe Ġelement Ġto Ġbe Ġpushed . Ċ Ġ* Ġ@ return ĠThe Ġupdate Ġbson . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ infix Ġfun Ġ< T > ĠK Property < Iterable < T > ?> . push ( element : ĠT ): ĠB son Ġ= ĠUpdates . push ( this . path (), Ġelement ) Ċ Ċ /** Ċ Ġ* ĠCreates Ġan Ġupdate ĠB son . Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġtarget Ġ[ K Property ]. Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġthe Ġvalue . Ċ Ġ* Ġ@ param ĠnewValue ĠThe Ġvalue Ġto Ġbe Ġset . Ċ Ġ* Ġ@ return ĠThe Ġupdate Ġbson . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ infix Ġfun Ġ< T > ĠK Property < T >. to ( newValue : ĠT ): ĠB son Ġ= ĠUpdates . set ( this . path (), ĠnewValue ) Ċ Ċ /** Ċ Ġ* ĠCombin es Ġa Ġlist Ġof ĠB son s Ġwith Ġupdate Ġsemantics . Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġlist Ġof ĠB son s . Ċ Ġ* Ġ@ return ĠThe Ġupdate ĠB son . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ fun ĠList < B son >. combine As Update (): ĠB son Ġ= ĠUpdates . combine ( this ) Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġfilter Ġfrom Ġa Ġlist Ġof ĠB son s Ġwith ĠAND Ġsemantics . Ċ Ġ* Ċ Ġ* Ġ@ receiver ĠThe Ġlist Ġof ĠB son s . Ċ Ġ* Ġ@ return ĠThe Ġfilter ĠB son . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ fun ĠList < B son >. combine As Filter (): ĠB son Ġ= ĠFilters . and ( this ) Ċ