package Ġorg . camunda . bpm . extension . rest . impl . query Ċ Ċ import Ġmu . K Logging Ċ import Ġorg . camunda . bpm . engine . Process Engine Exception Ċ import Ġorg . camunda . bpm . engine . impl . Deployment Query Impl Ċ import Ġorg . camunda . bpm . engine . impl . Deployment Query Property Ċ import Ġorg . camunda . bpm . engine . impl . Direction Ċ import Ġorg . camunda . bpm . engine . repository . Deployment Ċ import Ġorg . camunda . bpm . extension . rest . adapter . Deployment Adapter Ċ import Ġorg . camunda . bpm . extension . rest . adapter . Deployment Bean Ċ import Ġorg . camunda . bpm . extension . rest . client . api . Deployment ApiClient Ċ import Ġorg . springframework . web . bind . annotation . RequestParam Ċ import Ġkotlin . reflect . K Parameter Ċ import Ġkotlin . reflect . full . declared Member Properties Ċ import Ġkotlin . reflect . full . is Subtype Of Ċ import Ġkotlin . reflect . jvm . is Accessible Ċ Ċ class ĠDeleg ating Deployment Query ( ĊĠ Ġprivate Ġval Ġdeployment ApiClient : ĠDeployment ApiClient Ċ ) Ġ: ĠDeployment Query Impl () Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ: ĠK Logging () ĊĊĠ Ġoverride Ġfun Ġlist (): ĠList < Deployment > Ġ= Ġlist Page ( this . first Result , Ġthis . max Results ) ĊĊĠ Ġoverride Ġfun Ġlist Page ( first Result : ĠInt , Ġmax Results : ĠInt ): ĠList < Deployment > Ġ{ ĊĠĠĠ Ġwith ( Deployment ApiClient :: get Deployments ) Ġ{ ĊĠĠĠĠĠ Ġval Ġresult Ġ= Ġcall By ( parameters . associate With Ġ{ Ġparameter Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( parameter . kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠK Parameter . Kind . INSTANCE Ġ-> Ġdeployment ApiClient ĊĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( parameter . annotations . find Ġ{ Ġit Ġis ĠRequest Param Ġ} ?. let Ġ{ Ġ( it Ġas ĠRequest Param ). value Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" first Result " Ġ-> Ġfirst Result ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Results " Ġ-> Ġmax Results ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthis @ Delegating Deployment Query . getQuery Param ( parameter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠ Ġreturn Ġresult . body !!. map Ġ{ ĊĠĠĠĠĠĠĠ ĠDeployment Adapter ( Deployment Bean . from Dto ( it )) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġlist Ids (): ĠList < String > Ġ{ ĊĠĠĠ Ġreturn Ġlist (). map Ġ{ Ġit . id Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġun limit edList (): ĠList < Deployment > Ġ{ ĊĠĠĠ Ġ// ĠFIXME : Ġbest Ġapproximation Ġso Ġfar . ĊĠĠĠ Ġreturn Ġlist () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcount (): ĠLong Ġ{ ĊĠĠĠ Ġwith Ġ( Deployment ApiClient :: get Deployments Count ) Ġ{ ĊĠĠĠĠĠ Ġval Ġresult Ġ= Ġcall By ( parameters . associate With Ġ{ Ġparameter Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( parameter . kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠK Parameter . Kind . INSTANCE Ġ-> Ġdeployment ApiClient ĊĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthis @ Delegating Deployment Query . getQuery Param ( parameter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠ Ġreturn Ġresult . body !!. count ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġsingle Result (): ĠDeployment ? Ġ{ ĊĠĠĠ Ġval Ġresults Ġ= Ġlist () ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠ Ġresults . size Ġ== Ġ 1 Ġ-> Ġresults [ 0 ] ĊĠĠĠĠĠ Ġresults . size Ġ> Ġ 1 Ġ-> Ġthrow ĠProcess Engine Exception (" Query Ġreturn Ġ" Ġ+ Ġresults . size . toString () Ġ+ Ġ" Ġresults Ġinstead Ġof Ġexpected Ġmaximum Ġ 1 ") ĊĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget QueryParam ( parameter : ĠK Parameter ): ĠAny ? Ġ{ ĊĠĠĠ Ġcheck Query Ok () ĊĠĠĠ Ġval Ġvalue Ġ= Ġparameter . annotations . find Ġ{ Ġit Ġis ĠRequest Param Ġ} ?. let Ġ{ Ġ( it Ġas ĠRequest Param ). value Ġ} ĊĠĠĠ Ġval Ġproperties ByName Ġ= ĠDeployment Query Impl :: class . declared Member Properties . associate By Ġ{ Ġit . name Ġ} ĊĠĠĠ Ġif Ġ( this . ordering Properties . size Ġ> Ġ 1 ) Ġlogger . warn Ġ{ Ġ" sorting Ġwith Ġmore Ġthan Ġone Ġproperty Ġnot Ġsupported , Ġignoring Ġall Ġbut Ġfirst " Ġ} ĊĠĠĠ Ġval Ġsort Property Ġ= Ġthis . ordering Properties . first OrNull () ĊĠĠĠ Ġreturn Ġwhen ( value ) Ġ{ ĊĠĠĠĠĠ Ġ" id " Ġ-> Ġdeployment Id ĊĠĠĠĠĠ Ġ" without Source " Ġ-> Ġsource QueryParam Enabled Ġ&& Ġsource Ġ== Ġnull ĊĠĠĠĠĠ Ġ" tenantId In " Ġ-> Ġtenant Ids ?. toList () ĊĠĠĠĠĠ Ġ" without TenantId " Ġ-> Ġis TenantId Set Ġ&& Ġtenant Ids Ġ== Ġnull ĊĠĠĠĠĠ Ġ" after " Ġ-> Ġdeployment After ĊĠĠĠĠĠ Ġ" before " Ġ-> Ġdeployment Before ĊĠĠĠĠĠ Ġ" sortBy " Ġ-> Ġwhen Ġ( sort Property ?. query Property ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDeployment Query Property . DEPLOY MENT _ ID Ġ-> Ġ" id " ĊĠĠĠĠĠĠĠ ĠDeployment Query Property . DEPLOY MENT _ NAME Ġ-> Ġ" name " ĊĠĠĠĠĠĠĠ ĠDeployment Query Property . DEPLOY _ TIME Ġ-> Ġ" deployment Time " ĊĠĠĠĠĠĠĠ ĠDeployment Query Property . TEN ANT _ ID Ġ-> Ġ" tenantId " ĊĠĠĠĠĠĠĠ Ġnull Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ Ġ" unknown Ġquery Ġproperty Ġ${ sort Property . query Property }, Ġignoring Ġit " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" sort Order " Ġ-> Ġsort Property ?. direction ?. let Ġ{ Ġif Ġ( it Ġ== ĠDirection . DESC ENDING ) Ġ" desc " Ġelse Ġ" asc " Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= Ġproperties ByName [ value ] ĊĠĠĠĠĠĠĠ Ġif Ġ( property Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" no Ġproperty Ġfound Ġfor Ġ$ value ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! property . returnType . is Subtype Of ( parameter . type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ("${ property . returnType } Ġis Ġnot Ġassignable Ġto Ġ${ parameter . type } Ġfor Ġ$ value ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġproperty . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġval Ġprop Value Ġ= Ġproperty . get ( this ) ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( prop Value Ġis ĠCollection <* >) Ġprop Value . join ToString (",") Ġelse Ġprop Value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ } Ċ