package Ġorg . bit lap . core Ċ Ċ import Ġorg . apache . hadoop . conf . Configuration Ċ import Ġorg . bit lap . common . error . Bit lap Exception Ċ import Ġorg . bit lap . common . utils . Pre Conditions Ċ import Ġorg . bit lap . core . metadata . DataSource Ċ import Ġorg . bit lap . storage . store . DataSource Store Ċ Ċ /** Ċ Ġ* ĠDesc : Ġdatasource Ġmanager Ċ Ġ* Ċ Ġ* ĠMail : Ġchk 1 9 9 4 0 6 0 9 @ gmail . com Ċ Ġ* ĠCreated Ġby ĠI ce M im osa Ċ Ġ* ĠDate : Ġ 2 0 2 0 / 1 2 / 2 0 Ċ Ġ*/ Ċ object ĠDataSource Manager Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġconfiguration Ġ= ĠConfiguration () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreate Ġ[ DataSource ] Ġwith Ġ[ name ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġif Ġ[ if Not Exists ] Ġis Ġfalse , Ġexception Ġwill Ġbe Ġthrown Ġwhen Ġ[ DataSource ] Ġis Ġexists ĊĠĠĠĠ Ġ* Ġotherwise Ġignored . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate DataSource ( name : ĠString , Ġif Not Exists : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPre Conditions . check NotBlank ( name , Ġ" DataSource Ġname Ġcannot Ġbe Ġnull Ġor Ġblank .") ĊĠĠĠĠĠĠĠ Ġval Ġstore Ġ= ĠDataSource Store ( name , Ġconfiguration ) ĊĠĠĠĠĠĠĠ Ġval Ġds Ġ= ĠDataSource ( name ) ĊĠĠĠĠĠĠĠ Ġval Ġexists Ġ= Ġstore . exists () ĊĠĠĠĠĠĠĠ Ġif Ġ( exists Ġ&& Ġif Not Exists ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( exists ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠBit lap Exception (" DataSource Ġ[$ name ] Ġalready Ġexists .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstore . open () ĊĠĠĠĠĠĠĠ Ġstore . store ( ds ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġget Ġ[ DataSource ] Ġwith Ġ[ name ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget DataSource ( name : ĠString ): ĠDataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstore Ġ= ĠDataSource Store ( name , Ġconfiguration ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! store . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠBit lap Exception (" DataSource Ġ[$ name ] Ġis Ġnot Ġexists .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstore . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget DataSource Store ( name : ĠString ): ĠDataSource Store Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstore Ġ= ĠDataSource Store ( name , Ġconfiguration ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! store . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠBit lap Exception (" DataSource Ġ[$ name ] Ġis Ġnot Ġexists .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstore . open () ĊĠĠĠĠĠĠĠ Ġreturn Ġstore ĊĠĠĠ Ġ} Ċ } Ċ