package Ġorg . map db . atomic Ċ Ċ import Ġorg . map db . db . DB Ċ import Ġorg . map db . db . DB Props Ċ import Ġorg . map db . ser . Serializer Ċ import Ġorg . map db . ser . Serial izers Ċ Ċ abstract Ġclass ĠAbstract Maker < E >( protected Ġval Ġdb : DB , Ġprotected Ġval Ġname : String ){ ĊĊĠĠĠ Ġfun Ġcreate () Ġ= Ġcreate 2 () ĊĊĠĠĠ Ġ// ĠTODO Ġmethods Ġnot Ġcallable Ġfrom Ġjava ĊĠĠĠ Ġabstract Ġfun Ġcreate 2 (): E ĊĠĠĠ Ġabstract Ġfun Ġopen 2 ( props : Map < String , String >): E ĊĊĠĠĠ Ġprotected Ġfun ĠMap < String , ĠString >. getLong ( name : String ): Long Ġ= Ġthis . get ( name ) !!. to Long () ĊĠĠĠ Ġprotected Ġfun ĠMap < String , ĠString >. get Rec id (): Long Ġ= Ġthis . get ( DB Props . REC ID ) !!. to Long () Ċ Ċ } Ċ Ċ class ĠAtomic Boolean Maker ( db : DB , Ġname : String ): ĠAbstract Maker < Atomic . Boolean >( db , Ġname ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġinit Val : Boolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġcreate 2 (): ĠAtomic . Boolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġdb . store . put ( init Val , ĠSerial izers . BOOLEAN ) ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Boolean ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen 2 ( props : ĠMap < String , ĠString >): ĠAtomic . Boolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġprops . get Rec id () ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Boolean ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġm aker ( db : DB , Ġname : ĠString ): ĠAtomic Boolean Maker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAtomic Boolean Maker ( db , Ġname ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( initial Value : Boolean ): Atomic Boolean Maker { ĊĠĠĠĠĠĠĠ Ġinit Val Ġ= Ġinitial Value ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠAtomic Long Maker ( db : DB , Ġname : String ): ĠAbstract Maker < Atomic . Long >( db , Ġname ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġinit Val : Long Ġ= Ġ 0 L ĊĊĠĠĠ Ġoverride Ġfun Ġcreate 2 (): ĠAtomic . Long Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġdb . store . put ( init Val , ĠSerial izers . LONG ) ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Long ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen 2 ( props : ĠMap < String , ĠString >): ĠAtomic . Long Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġprops . get Rec id () ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Long ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( initial Value : Long ): Atomic Long Maker { ĊĠĠĠĠĠĠĠ Ġinit Val Ġ= Ġinitial Value ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġm aker ( db : DB , Ġname : ĠString ): ĠAtomic Long Maker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAtomic Long Maker ( db , Ġname ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠAtomicInteger Maker ( db : DB , Ġname : String ): ĠAbstract Maker < Atomic . Integer >( db , Ġname ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġinit Val : Int Ġ= Ġ 0 ĊĊĊĠĠĠ Ġoverride Ġfun Ġcreate 2 (): ĠAtomic . Integer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġdb . store . put ( init Val , ĠSerial izers . INTEGER ) ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Integer ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen 2 ( props : ĠMap < String , ĠString >): ĠAtomic . Integer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġprops . get Rec id () ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Integer ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( initial Value : Int ): Atomic Integer Maker { ĊĠĠĠĠĠĠĠ Ġinit Val Ġ= Ġinitial Value ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġm aker ( db : DB , Ġname : ĠString ): ĠAtomicInteger Maker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAtomicInteger Maker ( db , Ġname ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠAtomic String Maker ( db : DB , Ġname : String ): ĠAbstract Maker < Atomic . String >( db , Ġname ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġinit Val Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun Ġcreate 2 (): ĠAtomic . String Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġdb . store . put ( init Val , ĠSerial izers . STRING ) Ġ// TODO Ġnos ize Ġser ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . String ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen 2 ( props : ĠMap < String , ĠString >): ĠAtomic . String Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġprops . get Rec id () ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . String ( db . store , Ġrec id ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġinit ( initial Value : String ): Atomic String Maker { ĊĠĠĠĠĠĠĠ Ġinit Val Ġ= Ġinitial Value ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġm aker ( db : ĠDB , Ġname : ĠString ): ĠAtomic String Maker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAtomic String Maker ( db , Ġname ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊ Ċ } ĊĊ Ċ class ĠAtomic Var Maker < E >( db : DB , Ġname : String , Ġprivate Ġval Ġserializer : Serializer < E >): ĠAbstract Maker < Atomic . Var < E >>( db , Ġname ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġinit Val : E ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcreate 2 (): ĠAtomic . Var < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġdb . store . put ( init Val , Ġserializer ) Ġ// TODO Ġnos ize Ġser ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Var ( db . store , Ġrec id , Ġserializer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen 2 ( props : ĠMap < String , ĠString >): ĠAtomic . Var < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec id Ġ= Ġprops . get Rec id () ĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic . Var ( db . store , Ġrec id , Ġserializer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġ< E > Ġm aker ( db : ĠDB , Ġname : ĠString , Ġser : ĠSerializer < E >): ĠAtomic Var Maker < E > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAtomic Var Maker ( db , Ġname , Ġser ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit ( initial Value : E ): Atomic Var Maker < E >{ ĊĠĠĠĠĠĠĠ Ġinit Val Ġ= Ġinitial Value ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ