package Ġcom . ad ven . con cord ion . extensions . exam . db . builder Ċ Ċ import Ġorg . db unit . dataset . Column Ċ import Ġorg . db unit . dataset . DataSet Exception Ċ import Ġorg . db unit . dataset . Default Table MetaData Ċ import Ġorg . db unit . dataset . IT able MetaData Ċ import Ġorg . db unit . dataset . datatype . DataType Ċ import Ġjava . util . HashMap Ċ import Ġjava . util . Linked HashMap Ċ Ċ class ĠTable MetaData Builder ( private Ġval ĠtableName : ĠString , Ġprivate Ġval Ġpolicy : ĠI String Policy ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġkeys To Columns Ġ= ĠLinkedHashMap < String , ĠColumn >() ĊĊĠĠĠ Ġfun Ġwith ( metaData : ĠI Table MetaData ): ĠTable MetaData Builder Ġ= Ġwith (* metaData . columns ) ĊĊĠĠĠ Ġfun Ġwith ( var arg Ġcolumns : ĠColumn ): ĠTable MetaData Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġcolumns . forEach Ġ{ Ġwith ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith ( column : ĠColumn ): ĠTable MetaData Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( column . is Unknown ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( column ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd ( column : ĠColumn ) Ġ{ ĊĠĠĠĠĠĠĠ Ġkeys To Columns [ to Key ( column )] Ġ= Ġcolumn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠnumberOf Columns (): ĠInt Ġ= Ġkeys To Columns . size ĊĊĠĠĠ Ġfun Ġbuild (): ĠI Table MetaData Ġ= ĠDefault Table MetaData ( tableName , Ġcolumns ()) ĊĊĠĠĠ Ġprivate Ġfun Ġto Key ( column : ĠColumn ): ĠString Ġ= Ġpolicy . to Key ( column . columnName ) ĊĠĠĠ Ġprivate Ġfun ĠColumn . is Unknown (): ĠBoolean Ġ= Ġ! this . is Known () ĊĠĠĠ Ġprivate Ġfun ĠColumn . is Known (): ĠBoolean Ġ= Ġkeys To Columns . containsKey ( to Key ( this )) ĊĠĠĠ Ġprivate Ġfun Ġcolumns (): ĠArray < Column > Ġ= Ġkeys To Columns . values . to Typed Array () Ċ } Ċ Ċ class ĠData Row Builder ( private Ġval ĠdataSet : ĠDataSet Builder , ĠtableName : ĠString ) Ġ: ĠBasic DataRow Builder ( tableName ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġwith ( columnName : ĠString , Ġvalue : ĠAny ?): ĠData Row Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġput ( columnName , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Fields ( fields : ĠMap < String , ĠAny ?> ): ĠData Row Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ Ġ( col , Ġvalue ) Ġ-> Ġwith ( col , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( DataSet Exception :: class ) ĊĠĠĠ Ġfun Ġadd (): ĠDataSet Builder Ġ{ ĊĠĠĠĠĠĠĠ ĠdataSet . add ( this ) ĊĠĠĠĠĠĠĠ Ġreturn ĠdataSet ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠBasic DataRow Builder ( val ĠtableName : ĠString ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠcolumnName To Value : ĠHashMap < String , ĠAny ?> Ġ= ĠLinkedHashMap () ĊĠĠĠ Ġprivate Ġvar Ġall Column Names Ġ= Ġempty Array < String >() ĊĠĠĠ Ġprivate Ġval Ġdefault Values Ġ= ĠHashMap < String , ĠAny ?> () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdded Ġthe Ġcolumn Ġto Ġthe ĠData . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠcolumnName Ġthe Ġname Ġof Ġthe Ġcolumn . ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠĠ Ġthe Ġvalue Ġthe Ġcolumn Ġshould Ġhave . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġcurrent Ġobject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġwith ( columnName : ĠString , Ġvalue : ĠAny ?): ĠBasic DataRow Builder Ġ{ ĊĠĠĠĠĠĠĠ ĠcolumnName To Value [ columnName ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDefine Ġall Ġvalues Ġof Ġthe Ġtable Ġwith Ġnull Ġor Ġthe Ġdefault value . ĊĠĠĠĠ Ġ* ĠAll Ġcolumns Ġare Ġdefined Ġwith Ġ[. set All Column Names ]. ĊĠĠĠĠ Ġ* ĠFor Ġnot Ġnull Ġcolumns Ġyou Ġmust Ġdefine Ġdefault Ġvalues Ġvia ĊĠĠĠĠ Ġ* Ġ[. add DefaultValue ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġcurrent Ġobject . ĊĠĠĠĠ Ġ* Ġ@ author Ġn iel s ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 4 . 1 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfill Undefined Columns (): ĠBasic DataRow Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( column Ġin Ġall Column Names ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! columnName To Value . containsKey ( column )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcolumnName To Value [ column ] Ġ= Ġdefault Values [ column ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġvalues ( columns : ĠArray < Column >): ĠArray < Any ?> Ġ= Ġcolumns . map Ġ{ ĠgetValue ( it ) Ġ}. to Typed Array () ĊĊĠĠĠ Ġfun Ġto MetaData (): ĠI Table MetaData Ġ= Ġcreate MetaData ( columnName To Value . keys . map Ġ{ Ġcreate Column ( it ) Ġ}) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate MetaData ( columns : ĠList < Column >): ĠI Table MetaData Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Table MetaData ( tableName , Ġcolumns . to Typed Array ()) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Column ( columnName : ĠString ) Ġ= ĠColumn ( columnName , ĠDataType . UNKNOWN ) ĊĊĠĠĠ Ġprotected Ġfun Ġput ( columnName : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠcolumnName To Value [ columnName ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun ĠgetValue ( column : ĠColumn ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetValue ( column . columnName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun ĠgetValue ( columnName : ĠString ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠcolumnName To Value [ columnName ] ĊĠĠĠ Ġ} Ċ }