package Ġk ot li query Ċ Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . BigInteger Ċ import Ġjava . net . URL Ċ import Ġjava . sql . Types Ċ import Ġjava . time .* Ċ Ċ open Ġclass ĠParameter < out ĠT >( ĊĠĠĠ Ġval Ġvalue : ĠT ?, ĊĠĠĠ Ġval Ġtype : ĠClass < out ĠT > Ċ ) Ċ Ċ fun Ġ< T > ĠParameter < T >. sql Type () Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠ ĠString :: class . java , ĠURL :: class . java Ġ-> ĠTypes . VARCHAR ĊĠĠĠ ĠInt :: class . java , ĠLong :: class . java , ĠShort :: class . java , ĊĠĠĠ ĠByte :: class . java , ĠBigInteger :: class . java Ġ-> ĠTypes . NUMERIC ĊĠĠĠ ĠDouble :: class . java , ĠBigDecimal :: class . java Ġ-> ĠTypes . DOUBLE ĊĠĠĠ ĠFloat :: class . java Ġ-> ĠTypes . FLOAT ĊĠĠĠ Ġjava . sql . Date :: class . java , Ġjava . util . Date :: class . java , ĠZ onedDateTime :: class . java , ĠOffset DateTime :: class . java , ĊĠĠĠ ĠInstant :: class . java , ĠLocalDateTime :: class . java , Ġorg . joda . time . DateTime :: class . java , Ġorg . joda . time . LocalDateTime :: class . java , ĊĠĠĠ Ġjava . sql . Timestamp :: class . java Ġ-> ĠTypes . TIMESTAMP ĊĠĠĠ Ġjava . sql . Time :: class . java , ĠLocal Time :: class . java Ġ-> ĠTypes . TIME ĊĠĠĠ ĠLocalDate :: class . java Ġ-> ĠTypes . DATE ĊĠĠĠ Ġelse Ġ-> ĠTypes . OTHER Ċ } Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ inline Ġfun Ġ< re ified ĠT > ĠT ?. param (): ĠParameter < T > Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠParameter < *> Ġ-> ĠParameter ( this . value Ġas ĠT ?, Ġthis . type Ġas ĠClass < T >) ĊĠĠĠ Ġelse Ġ-> ĠParameter ( this , ĠT :: class . java ) Ċ }