package Ġsql Dsl Ċ Ċ data Ġclass ĠSql Model ( ĊĠĠĠ Ġvar Ġtable : ĠTable Ġ= ĠTable . NONE , ĊĠĠĠ Ġvar Ġcolumns : ĠColumns Ġ= ĠColumns . EMPTY , ĊĠĠĠ Ġvar Ġwhere : ĠList < Where Model > Ġ= Ġempty List () Ċ ) Ċ Ċ @ Jvm Inline Ċ value Ġclass ĠTable Ġ( val Ġname : ĠString ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠNONE Ġ= ĠTable ("") ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Jvm Inline Ċ value Ġclass ĠColumns Ġ( private Ġval Ġcolumns : ĠList < String >) Ġ{ ĊĠĠĠ Ġval Ġstring : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( columns . isEmpty ()) Ġreturn Ġ"*" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcolumns . join ToString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEMPTY Ġ= ĠColumns ( emptyList ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠWhere Model Ġ( ĊĠĠĠ Ġval Ġcolumn : ĠString Ġ= Ġ"", ĊĠĠĠ Ġval Ġis Equals : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġwhere Value : ĠWhere Value Ġ= ĠWhere Null Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġstring : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( column . isEmpty ()) Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"$ column Ġ$ equals String Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( where Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠWhere Int Ġ-> Ġwhere Value . value . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhere Null Ġ-> Ġ" null " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠWhere String Ġ-> Ġ"' ${ where Value . value } '" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġequals String : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( where Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠWhere Int , Ġis ĠWhere String Ġ-> Ġif Ġ( is Equals ) Ġ"=" Ġelse Ġ"! =" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhere Null Ġ-> Ġif Ġ( is Equals ) Ġ" is " Ġelse Ġ"! is " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġclass ĠWhere Value Ċ Ċ class ĠWhere String ( val Ġvalue : ĠString ) Ġ: ĠWhere Value () Ċ class ĠWhere Int ( val Ġvalue : ĠInt ) Ġ: ĠWhere Value () Ċ object ĠWhere Null Ġ: ĠWhere Value () Ċ