package Ġuk . dio x ic . m generate . cli . options Ċ Ċ import Ġcom . github . aj alt . cli kt . parameters . groups . Option Group Ċ import Ġcom . github . aj alt . cli kt . parameters . options .* Ċ import Ġcom . github . aj alt . cli kt . parameters . types . int Ċ import Ġcom . mongodb . ConnectionString Ċ import Ġcom . mongodb . Mongo Client Settings Ċ import Ġcom . mongodb . Mongo Credential Ċ import Ġcom . mongodb . Server Address Ċ import Ġcom . mongodb . client . Mongo Client Ċ import Ġcom . mongodb . client . Mongo Collection Ċ import Ġcom . mongodb . client . Mongo Database Ċ import Ġorg . bson . Document Ċ Ċ class ĠAuth Options Ġ: ĠOption Group ( name Ġ= Ġ" Authentication ĠOptions ") Ġ{ ĊĠĠĠ Ġval Ġusername Ġby Ġoption ("- u ", Ġ"-- username ", Ġhelp Ġ= Ġ" username Ġfor Ġauthentication "). required () ĊĠĠĠ Ġval Ġpassword Ġby Ġoption ("- p ", Ġ"-- password ", Ġhelp Ġ= Ġ" password Ġfor Ġauthentication "). prompt ( hide Input Ġ= Ġtrue ) ĊĠĠĠ Ġval Ġauth Source Ġby Ġoption ("-- authentication Database ", Ġhelp Ġ= Ġ" authentication Ġdatabase "). default (" admin ") Ċ } Ċ Ċ class ĠConnection Options Ġ: ĠOption Group ( name Ġ= Ġ" Connection ĠOptions ") Ġ{ ĊĠĠĠ Ġval Ġhost Ġby Ġoption ( help Ġ= Ġ" server Ġto Ġconnect Ġto "). default (" localhost ") ĊĠĠĠ Ġval Ġport Ġby Ġoption ( help Ġ= Ġ" port Ġto Ġconnect Ġto "). int (). default ( 2 7 0 1 7 ) ĊĠĠĠ Ġval Ġuri Ġby Ġoption ( help Ġ= Ġ" mongodb Ġuri Ġconnection Ġstring "). convert (" URI ") Ġ{ ĠConnection String ( it ) Ġ} Ċ } Ċ Ċ class ĠNamespace Options Ġ: ĠOption Group ( name Ġ= Ġ" Namespace ĠOptions ") Ġ{ ĊĠĠĠ Ġval Ġdatabase Ġby Ġoption ("- d ", Ġ"-- database ", Ġhelp Ġ= Ġ" database Ġto Ġuse "). default (" test ") ĊĠĠĠ Ġval Ġcollection Ġby Ġoption ("- c ", Ġ"-- collection ", Ġhelp Ġ= Ġ" collection Ġto Ġuse "). required () Ċ } Ċ Ċ fun ĠMongo Client Settings . Builder . apply Auth Options ( auth Options : ĠAuth Options ?): ĠMongo Client Settings . Builder Ġ{ ĊĠĠĠ Ġif Ġ( auth Options Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcredential ( Mongo Credential . create Credential ( auth Options . username , Ġauth Options . auth Source , Ġauth Options . password . toCharArray ())) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun ĠMongo Client Settings . Builder . apply Connection Options ( connection Options : ĠConnection Options ): ĠMongo Client Settings . Builder Ġ{ ĊĠĠĠ Ġif Ġ( connection Options . uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġapply ConnectionString ( connection Options . uri !! ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġapply To Cluster Settings Ġ{ Ġit . hosts ( listOf ( Server Address ( connection Options . host , Ġconnection Options . port ))) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun ĠMongo Client . get Database ( namespace Options : ĠNamespace Options ): ĠMongo Database Ġ{ ĊĠĠĠ Ġreturn Ġget Database ( namespace Options . database ) Ċ } Ċ Ċ fun ĠMongo Database . get Collection ( namespace Options : ĠNamespace Options ): ĠMongo Collection < Document > Ġ{ ĊĠĠĠ Ġreturn Ġget Collection ( namespace Options . collection ) Ċ } Ċ Ċ fun Ġ< T > ĠMongo Database . get Collection ( namespace Options : ĠNamespace Options , Ġclazz : ĠClass < T >): ĠMongo Collection < T > Ġ{ ĊĠĠĠ Ġreturn Ġget Collection ( namespace Options . collection , Ġclazz ) Ċ }