package Ġio . app write Ċ Ċ class ĠQuery Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġequal ( attribute : ĠString , Ġvalue : ĠAny ) Ġ= Ġadd Query ( attribute , Ġ" equal ", Ġvalue ) ĊĊĠĠĠ Ġfun Ġnot Equal ( attribute : ĠString , Ġvalue : ĠAny ) Ġ= ĠQuery . add Query ( attribute , Ġ" not Equal ", Ġvalue ) ĊĊĠĠĠ Ġfun Ġless er ( attribute : ĠString , Ġvalue : ĠAny ) Ġ= ĠQuery . add Query ( attribute , Ġ" less er ", Ġvalue ) ĊĊĠĠĠ Ġfun Ġless er Equal ( attribute : ĠString , Ġvalue : ĠAny ) Ġ= ĠQuery . add Query ( attribute , Ġ" less er Equal ", Ġvalue ) ĊĊĠĠĠ Ġfun Ġgreater ( attribute : ĠString , Ġvalue : ĠAny ) Ġ= ĠQuery . add Query ( attribute , Ġ" greater ", Ġvalue ) ĊĊĠĠĠ Ġfun Ġgreater Equal ( attribute : ĠString , Ġvalue : ĠAny ) Ġ= ĠQuery . add Query ( attribute , Ġ" greater Equal ", Ġvalue ) ĊĠĠĠĠĊĠĠĠ Ġfun Ġsearch ( attribute : ĠString , Ġvalue : ĠString ) Ġ= ĠQuery . add Query ( attribute , Ġ" search ", Ġvalue ) ĊĊĠĠĠ Ġprivate Ġfun Ġadd Query ( attribute : ĠString , Ġoper : ĠString , Ġvalue : ĠAny ): ĠString Ġ{ ĊĠĠĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠList < *> Ġ-> Ġ"${ attribute }.${ oper } (${ value . map { it Ġ-> Ġparse Values ( it !! )}. join ToString (",") })" ĊĠĠĠĠĉ Ġ Ġelse Ġ-> Ġ"${ attribute }.${ oper } (${ Query . parse Values ( value )}) " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġparse Values ( value : ĠAny ): ĠString Ġ{ ĊĠĠĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ"\" ${ value }\ "" ĊĠĠĠĠĉ Ġ Ġelse Ġ-> Ġ"${ value }" ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ