package Ġpw . bin om . db . async Ċ Ċ import Ġcom . ion spin . kotlin . b ignum . decimal . BigDecimal Ċ import Ġcom . ion spin . kotlin . b ignum . integer . BigInteger Ċ import Ġpw . bin om . UUID Ċ import Ġpw . bin om . date . Calendar Ċ import Ġpw . bin om . date . Date Ċ import Ġpw . bin om . db . SQLException Ċ import Ġpw . bin om . io . Async Closeable Ċ Ċ interface ĠAsync PreparedStatement Ġ: ĠAsync Closeable Ġ{ ĊĠĠĠ Ġval Ġconnection : ĠAsync Connection ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠBigInteger ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠBigDecimal ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠDouble ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠFloat ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠInt ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠLong ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠString ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠBoolean ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠByteArray ) ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠDate ) ĊĠĠĠ Ġsuspend Ġfun Ġset Null ( index : ĠInt ) ĊĠĠĠ Ġsuspend Ġfun ĠsetValue ( index : ĠInt , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġset Null ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBigInteger Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBigDecimal Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDouble Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠByteArray Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCalendar Ġ-> Ġset ( index , Ġvalue . date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUUID Ġ-> Ġset ( index , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠSQLException (" Can 't Ġset Ġvalue Ġ\"$ value \" Ġfor Ġargument Ġ#$ index . ĠType Ġ\" ${ value :: class }\" Ġnot Ġsupported ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġexecute Query ( var arg Ġarguments : ĠAny ?): ĠAsync ResultSet Ġ{ ĊĠĠĠĠĠĠĠ Ġarguments . forEach Indexed Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetValue ( index , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute Query () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġexecute Update ( var arg Ġarguments : ĠAny ?): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġarguments . forEach Indexed Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetValue ( index , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute Update () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġexecute Query (): ĠAsync ResultSet ĊĠĠĠ Ġsuspend Ġfun Ġexecute Update (): ĠLong ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġvalue : ĠUUID ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġset ( index , Ġvalue . toByteArray ( buf )) ĊĠĠĠ Ġ} Ċ }