package Ġcom . db flow 5 . converter Ċ Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . BigInteger Ċ import Ġjava . sql . Time Ċ import Ġjava . sql . Timestamp Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠAuthor : Ġand rew g ros ner Ċ Ġ* ĠDescription : ĠThis Ġclass Ġis Ġresponsible Ġfor Ġconverting Ġthe Ġstored Ġdatabase Ġvalue Ġinto Ġthe Ġfield Ġvalue Ġin Ċ Ġ* Ġa ĠModel . Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ abstract Ġclass ĠType Converter < Data Class , ĠModel Class > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġthe ĠModel Class Ġinto Ġa ĠData Class ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Ġthis Ġwill Ġbe Ġcalled Ġupon Ġsync ing ĊĠĠĠĠ Ġ* Ġ@ return ĠThe ĠData Class Ġvalue Ġthat Ġconverts Ġinto Ġa ĠSQLite Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġget DB Value ( model : ĠModel Class ?): ĠData Class ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġa ĠData Class Ġfrom Ġthe ĠDB Ġinto Ġa ĠModel Class ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĠThis Ġwill Ġbe Ġcalled Ġwhen Ġthe Ġmodel Ġis Ġloaded Ġfrom Ġthe ĠDB ĊĠĠĠĠ Ġ* Ġ@ return ĠThe ĠModel Class Ġvalue Ġthat Ġgets Ġset Ġin Ġa ĠModel Ġthat Ġholds Ġthe Ġdata Ġclass . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun ĠgetModel Value ( data : ĠData Class ?): ĠModel Class ? Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠDefines Ġhow Ġwe Ġstore Ġand Ġretrieve Ġa Ġ[ java . math . BigDecimal ] Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ class ĠBigDecimal Converter Ġ: ĠType Converter < String , ĠBigDecimal >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠBigDecimal ?): ĠString ? Ġ= Ġmodel ?. toString () ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠString ?): ĠBigDecimal ? Ġ= Ġif Ġ( data Ġ== Ġnull ) Ġnull Ġelse ĠBigDecimal ( data ) Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠDefines Ġhow Ġwe Ġstore Ġand Ġretrieve Ġa Ġ[ java . math . BigInteger ] Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ class ĠBigInteger Converter Ġ: ĠType Converter < String , ĠBigInteger >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠBigInteger ?): ĠString ? Ġ= Ġmodel ?. toString () ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠString ?): ĠBigInteger ? Ġ= Ġif Ġ( data Ġ== Ġnull ) Ġnull Ġelse ĠBigInteger ( data ) Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠConverts Ġa Ġboolean Ġobject Ġinto Ġan ĠInteger Ġfor Ġdatabase Ġstorage . Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ class ĠBoolean Converter Ġ: ĠType Converter < Int , ĠBoolean >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠBoolean ?): ĠInt ? Ġ= Ġif Ġ( model Ġ== Ġnull ) Ġnull Ġelse Ġif Ġ( model ) Ġ 1 Ġelse Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠInt ?): ĠBoolean ? Ġ= Ġif Ġ( data Ġ== Ġnull ) Ġnull Ġelse Ġdata Ġ== Ġ 1 Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠDefines Ġhow Ġwe Ġstore Ġand Ġretrieve Ġa Ġ[ java . util . Calendar ] Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter ( allowed Sub types Ġ= Ġ[( G regorian Calendar :: class )]) Ċ class ĠCalendar Converter Ġ: ĠType Converter < Long , ĠCalendar >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠCalendar ?): ĠLong ? Ġ= Ġmodel ?. time In Millis ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠLong ?): ĠCalendar ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) ĠCalendar . getInstance (). apply Ġ{ Ġtime In Millis Ġ= Ġdata Ġ} Ġelse Ġnull Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠConverts Ġa Ġ[ Character ] Ġinto Ġa Ġ[ String ] Ġfor Ġdatabase Ġstorage . Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ class ĠChar Converter Ġ: ĠType Converter < String , ĠChar >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠChar ?): ĠString ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model Ġ!= Ġnull ) ĠString ( char ArrayOf ( model )) Ġelse Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠString ?): ĠChar ? Ġ= Ġif Ġ( data Ġ!= Ġnull ) Ġdata [ 0 ] Ġelse Ġnull Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠDefines Ġhow Ġwe Ġstore Ġand Ġretrieve Ġa Ġ[ java . util . Date ] Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ class ĠDate Converter Ġ: ĠType Converter < Long , ĠDate >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠDate ?): ĠLong ? Ġ= Ġmodel ?. time ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠLong ?): ĠDate ? Ġ= Ġif Ġ( data Ġ== Ġnull ) Ġnull Ġelse ĠDate ( data ) Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠDefines Ġhow Ġwe Ġstore Ġand Ġretrieve Ġa Ġ[ java . sql . Date ] Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter ( allowed Sub types Ġ= Ġ[( Time :: class ), Ġ( Timestamp :: class )]) Ċ class ĠSql Date Converter Ġ: ĠType Converter < Long , Ġjava . sql . Date >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : Ġjava . sql . Date ?): ĠLong ? Ġ= Ġmodel ?. time ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠLong ?): Ġjava . sql . Date ? Ġ= Ġif Ġ( data Ġ== Ġnull ) Ġnull Ġelse Ġjava . sql . Date ( data ) Ċ } Ċ Ċ /** Ċ Ġ* ĠDescription : ĠResp ons ible Ġfor Ġconverting Ġa Ġ[ UUID ] Ġto Ġa Ġ[ String ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠAndrew ĠG ros ner Ġ( fuzz ) Ċ Ġ*/ Ċ @ com . db flow 5 . annotation . Type Converter Ċ class ĠUUID Converter Ġ: ĠType Converter < String , ĠUUID >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget DB Value ( model : ĠUUID ?): ĠString ? Ġ= Ġmodel ?. toString () ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Value ( data : ĠString ?): ĠUUID ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠUUID . fromString ( data ) ĊĠĠĠ Ġ} Ċ }