package Ġorg . vit riv r . cott ont ail . client . language . basics Ċ Ċ import Ġorg . vit riv r . cott ont ail . grpc . C ott ont ail Grpc Ċ import Ġjava . time . Instant Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠThe Ġ( column ) Ġ[ Type ] Ġsupported Ġby ĠC ott ont ail ĠDB . Ċ Ġ* Ċ Ġ* Ġ@ author ĠR alph ĠG asser Ċ Ġ* Ġ@ version Ġ 1 . 1 . 0 Ċ Ġ*/ Ċ enum Ġclass ĠType ( val Ġgrpc : ĠC ott ont ail Grpc . Type ) Ġ{ ĊĠĠĠ ĠBOOLEAN ( C ott ont ail Grpc . Type . BOOLEAN ), ĊĠĠĠ ĠBYTE ( C ott ont ail Grpc . Type . BYTE ), ĊĠĠĠ ĠSH ORT ( C ott ont ail Grpc . Type . SHORT ), ĊĠĠĠ ĠINTEGER ( C ott ont ail Grpc . Type . INTEGER ), ĊĠĠĠ ĠLONG ( C ott ont ail Grpc . Type . LONG ), ĊĠĠĠ ĠFLOAT ( C ott ont ail Grpc . Type . FLOAT ), ĊĠĠĠ ĠDOUBLE ( C ott ont ail Grpc . Type . DOUBLE ), ĊĠĠĠ ĠDATE ( C ott ont ail Grpc . Type . DATE ), ĊĠĠĠ ĠSTRING ( C ott ont ail Grpc . Type . STRING ), ĊĠĠĠ ĠCOMP LEX 3 2 ( C ott ont ail Grpc . Type . COMPLEX 3 2 ), ĊĠĠĠ ĠCOMP LEX 6 4 ( C ott ont ail Grpc . Type . COMPLEX 6 4 ), ĊĠĠĠ ĠDOUBLE _ VECTOR ( C ott ont ail Grpc . Type . DOUBLE _ VEC ), ĊĠĠĠ ĠFLOAT _ VECTOR ( C ott ont ail Grpc . Type . FLOAT _ VEC ), ĊĠĠĠ ĠLONG _ VECTOR ( C ott ont ail Grpc . Type . LONG _ VEC ), ĊĠĠĠ ĠINTEGER _ VECTOR ( C ott ont ail Grpc . Type . INT _ VEC ), ĊĠĠĠ ĠBOOLEAN _ VECTOR ( C ott ont ail Grpc . Type . BOOL _ VEC ), ĊĠĠĠ ĠCOMP LEX 3 2 _ VECTOR ( C ott ont ail Grpc . Type . COMPLEX 3 2 _ VEC ), ĊĠĠĠ ĠCOMP LEX 6 4 _ VECTOR ( C ott ont ail Grpc . Type . COMPLEX 6 4 _ VEC ), ĊĠĠĠ ĠBLOB ( C ott ont ail Grpc . Type . BLOB ), ĊĠĠĠ ĠUN DEFINED ( C ott ont ail Grpc . Type . UN RE CO GN IZED ); ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠConverts Ġa Ġ[ C ott ont ail Grpc . Type ] Ġto Ġa Ġ[ Type ]. ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġgrpc Type ĠThe Ġ[ C ott ont ail Grpc . Type ] Ġto Ġconvert . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ[ Type ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġof ( grpc Type : ĠC ott ont ail Grpc . Type ) Ġ= Ġwhen Ġ( grpc Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . BOOLEAN Ġ-> ĠBOOLEAN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . BYTE Ġ-> ĠBYTE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . SHORT Ġ-> ĠSH ORT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . INTEGER Ġ-> ĠINTEGER ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . LONG Ġ-> ĠLONG ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . FLOAT Ġ-> ĠFLOAT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . DOUBLE Ġ-> ĠDOUBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . DATE Ġ-> ĠDATE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . STRING Ġ-> ĠSTRING ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . COMPLEX 3 2 Ġ-> ĠCOMP LEX 3 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . COMPLEX 6 4 Ġ-> ĠCOMP LEX 6 4 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . DOUBLE _ VEC Ġ-> ĠDOUBLE _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . FLOAT _ VEC Ġ-> ĠFLOAT _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . LONG _ VEC Ġ-> ĠLONG _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . INT _ VEC Ġ-> ĠINTEGER _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . BOOL _ VEC Ġ-> ĠBOOLEAN _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . COMPLEX 3 2 _ VEC Ġ-> ĠCOMP LEX 3 2 _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . COMPLEX 6 4 _ VEC Ġ-> ĠCOMP LEX 6 4 _ VECTOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . BLOB Ġ-> ĠBLOB ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ott ont ail Grpc . Type . UN RE CO GN IZED Ġ-> ĠUN DEFINED ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġthe Ġgiven Ġvalue Ġto Ġa Ġ[ String ] Ġrepresentation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ Any ] Ġvalue Ġ( can Ġbe Ġnull ). ĊĠĠĠĠ Ġ* Ġ@ param ĠmaxLength ĠThe Ġmaximum Ġlength Ġ( for Ġvector Ġelements ). ĊĠĠĠĠ Ġ* Ġ@ return ĠString ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠtoString ( value : ĠAny ?, ĠmaxLength : ĠInt Ġ= Ġ 4 ): ĠString Ġ= Ġwhen ( value ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBOOLEAN Ġ-> Ġ( value Ġas ĠBoolean ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠBYTE Ġ-> Ġ Ġ( value Ġas ĠByte ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠSH ORT Ġ-> Ġ Ġ( value Ġas ĠShort ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠINTEGER Ġ-> Ġ( value Ġas ĠInt ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠLONG Ġ-> Ġ Ġ( value Ġas ĠLong ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠFLOAT Ġ-> Ġ Ġ( value Ġas ĠFloat ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠDOUBLE Ġ-> Ġ Ġ( value Ġas ĠDouble ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠDATE Ġ-> Ġ Ġ( value Ġas ĠLong ?) ?. let Ġ{ ĠDate . from ( Instant . of Epoch Milli ( it )) Ġ} ?. toString () ĊĠĠĠĠĠĠĠ ĠSTRING Ġ-> Ġ Ġ( value Ġas ĠString ?) ?. toString () ĊĠĠĠĠĠĠĠ ĠCOMP LEX 3 2 Ġ-> Ġ( value Ġas ĠPair < *, *> ?) ?. let Ġ{ Ġ"${ it . first } Ġ+ Ġi ${ it . second }" Ġ} ĊĠĠĠĠĠĠĠ ĠCOMP LEX 6 4 Ġ-> Ġ( value Ġas ĠPair < *, *> ?) ?. let Ġ{ Ġ"${ it . first } Ġ+ Ġi ${ it . second }" Ġ} ĊĠĠĠĠĠĠĠ ĠDOUBLE _ VECTOR Ġ-> Ġ( value Ġas ĠDouble Array ?) ?. let Ġ{ Ġthis . vector ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ ĠFLOAT _ VECTOR Ġ-> Ġ( value Ġas ĠFloat Array ?) ?. let Ġ{ Ġthis . vector ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ ĠLONG _ VECTOR Ġ-> Ġ( value Ġas ĠLong Array ?) ?. let Ġ{ Ġthis . vector ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ ĠINTEGER _ VECTOR Ġ-> Ġ( value Ġas ĠInt Array ?) ?. let Ġ{ Ġthis . vector ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ ĠBOOLEAN _ VECTOR Ġ-> Ġ( value Ġas ĠBoolean Array ?) ?. let Ġ{ Ġthis . vector ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ ĠCOMP LEX 3 2 _ VECTOR Ġ-> Ġ( value Ġas ĠArray < Pair < *, * >> ?) ?. let Ġ{ Ġcomplex ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ ĠCOMP LEX 6 4 _ VECTOR Ġ-> Ġ( value Ġas ĠArray < Pair < *, * >> ?) ?. let Ġ{ Ġcomplex ToString ( it . toList (), ĠmaxLength ) Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" ~~ N / A ~~ " ĊĠĠĠ Ġ} Ġ?: Ġ" ~~ NULL ~~ " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConcat en ates Ġa Ġvector Ġ( list ) Ġinto Ġa Ġ[ String ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvector ĠThe Ġ[ List ] Ġto Ġconcatenate . ĊĠĠĠĠ Ġ* Ġ@ param Ġmax ĠThe Ġmaximum Ġnumber Ġof Ġelements Ġto Ġinclude . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġvector ToString ( vector : ĠList <* >, Ġmax : ĠInt Ġ= Ġ 4 ) Ġ= Ġif Ġ( vector . size Ġ> Ġmax ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ"[ ${ vector . take ( max Ġ- Ġ 1 ). join ToString (", Ġ" )} .. , Ġ${ vector . last ()} ]" ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ"[ ${ vector . join ToString (", Ġ" )} ]" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConcat en ates Ġa Ġvector Ġ( list ) Ġinto Ġa Ġ[ String ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvector ĠThe Ġ[ List ] Ġto Ġconcatenate . ĊĠĠĠĠ Ġ* Ġ@ param Ġmax ĠThe Ġmaximum Ġnumber Ġof Ġelements Ġto Ġinclude . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcomplex ToString ( vector : ĠList < Pair < *, * >>, Ġmax : ĠInt Ġ= Ġ 4 ) Ġ= Ġif Ġ( vector . size Ġ> Ġmax ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ"[ ${ vector . take ( max Ġ- Ġ 1 ). join ToString (", Ġ") Ġ{ Ġ"${ it . first } Ġ+ Ġi ${ it . second }" Ġ}} .. , Ġ${ vector . last (). first } Ġ+ Ġi ${ vector . last (). second }] " ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ"[ ${ vector . join ToString (", Ġ") Ġ{ Ġ"${ it . first } Ġ+ Ġi ${ it . second }" Ġ}} ]" ĊĠĠĠ Ġ} Ċ }