package Ġbr . com . ac mat tos . hdc . common . context . port . persistence . mongodb Ċ Ċ import Ġcom . mongodb . client . Mongo Collection Ċ import Ġcom . mongodb . client . model . Index Options Ċ import Ġorg . bson . conversions . B son Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAC Mat tos Ċ Ġ* Ġ@ since Ġ 1 8 / 0 8 / 2 0 1 9 . Ċ Ġ*/ Ċ class ĠM db Collection < T : ĠM db Document >( ĊĠĠĠ Ġprivate Ġval Ġm db Database : ĠM db Database , ĊĠĠĠ Ġprivate Ġval Ġm db Collection Config : ĠM db Collection Config < T > Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Collection (): ĠMongo Collection < T > Ġ= ĊĠĠĠĠĠĠĠ Ġm db Database . get Mongo Database (). get Collection ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm db Collection Config . collection Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm db Collection Config . document Class ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġmongo Collection Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm db Collection Config . indexes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmongo Collection . create Index ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm db Collection Config . compound Indexes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmongo Collection . create Index ( it . first , Ġit . second ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAC Mat tos Ċ Ġ* Ġ@ since Ġ 3 0 / 0 6 / 2 0 2 0 . Ċ Ġ*/ Ċ data Ġclass ĠM db Collection Config < T : ĠM db Document >( ĊĠĠĠ Ġval Ġcollection Name : ĠString , ĊĠĠĠ Ġval Ġdocument Class : ĠClass < T >, ĊĠĠĠ Ġval Ġindexes : ĠMutable List < B son > Ġ= Ġmutable ListOf (), ĊĠĠĠ Ġval Ġcompound Indexes : ĠMutable List < Pair < B son , ĠIndex Options >> Ġ= Ġmutable ListOf () Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġadd Indexes ( var arg Ġbson Documents : ĠB son ): ĠM db Collection Config < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġbson Documents . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexes . add ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Compound Indexes ( var arg Ġpairs : ĠPair < B son , ĠIndex Options >): ĠM db Collection Config < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġpairs . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompound Indexes . add ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ } Ċ