package Ġcom . github . lem fi . k est . cad ence . executor Ċ Ċ import Ġcom . github . lem fi . k est . core . model . Execution Ċ import Ġcom . uber . cad ence . client . Workflow Client Ċ import Ġcom . uber . cad ence . client . Workflow Client Options Ċ import Ġcom . uber . cad ence . client . Workflow Options Ċ import Ġcom . uber . cad ence . context . Context Propag ator Ċ import Ġcom . uber . cad ence . service client . Client Options Ċ import Ġcom . uber . cad ence . service client . Workflow Service T Channel Ċ import Ġcom . uber . cad ence . worker . Worker Factory Ċ import Ġcom . uber . cad ence . worker . Worker Options Ċ import Ġorg . opent est 4 j . Assertion Failed Error Ċ import Ġjava . time . Duration Ċ import Ġkotlin . reflect . K Function Ċ import Ġkotlin . reflect . jvm . java Type Ċ Ċ internal Ġclass ĠWorkflow Execution < RESULT >( ĊĠĠĠ Ġprivate Ġval Ġcad ence Host : ĠString , ĊĠĠĠ Ġprivate Ġval Ġcad ence Port : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġcad ence Domain : ĠString , ĊĠĠĠ Ġprivate Ġval Ġtask list : ĠString , ĊĊĠĠĠ Ġprivate Ġval Ġworkflow : ĠK Function < RESULT >, ĊĠĠĠ Ġprivate Ġval Ġparams : ĠArray < out ĠAny ?> ?, ĊĊĠĠĠ Ġprivate Ġval Ġactivities : ĠList < Pair < Any , ĠString >> ?, ĊĠĠĠ Ġprivate Ġval Ġcontext Propag ators : ĠList < Context Propag ator > ?, ĊĊĠĠĠ Ġ) Ġ: ĠExecution < RESULT >() Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" unchecked _ cast ") ĊĠĠĠ Ġoverride Ġfun Ġexecute (): ĠRESULT Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġworkflow Class Ġ= ĠClass . forName ( workflow . parameters [ 0 ]. type :: java Type . get (). typeName ) ĊĊĠĠĠĠĠĠĠ Ġactivities ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġit . second Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġtask lists Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask lists . forEach Ġ{ Ġtask list Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Factory . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWorkflow Client . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWorkflow Service T Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClient Options . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Host ( cad ence Host ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Port ( cad ence Port ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWorkflow Client Options . newBuilder (). set Domain ( cad ence Domain ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworker Ġ= Ġnew Worker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask list , ĠWorker Options . default Instance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworker . register Activities Implement ations (* activities . filter Ġ{ Ġit . second Ġ== Ġtask list Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . first Ġ}. to Typed Array ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġval Ġparameter Types Ġ= Ġworkflow . parameters . sub List ( 1 , Ġworkflow . parameters . size ). also Ġ{ Ġparameter Types Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( params ?. size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 ) Ġ!= Ġparameter Types . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġthrow ĠAssertion Failed Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wrong Ġnumber Ġof Ġparameter Ġfor Ġactivity , Ġexpected Ġ[ ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Types . map Ġ{ Ġit . type Ġ}. join ToString (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}] Ġgot Ġ${ params ?. toList () }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĠClass . forName ( it . type . java Type . typeName ) Ġ}. take If Ġ{ Ġit . isNotEmpty () Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġparameter Types ?. let Ġ{ Ġworkflow Class . getMethod ( workflow . name , Ġ* parameter Types . to Typed Array ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġworkflow Class . getMethod ( workflow . name ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWorkflow Client . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorkflow Service T Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClient Options . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Host ( cad ence Host ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Port ( cad ence Port ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorkflow Client Options . newBuilder (). set Domain ( cad ence Domain ). build () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Workflow Stub ( workflow Class , ĠWorkflow Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Execution Start To Close Timeout ( Duration . of Minutes ( 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Propag ators ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Context Propag ators ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set TaskList ( task list ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()). let Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod . invoke ( it , Ġ* params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod . invoke ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġas ĠRESULT ĊĠĠĠ Ġ} Ċ }