package Ġcom . kas per sky . components . ka utom ator . intercept ing . delegate Ċ Ċ import Ġcom . kas per sky . components . ka utom ator . intercept ing . intercept . Ui Interceptor Ċ Ċ /** Ċ Ġ* ĠBase Ġdelegate Ġinterface Ġfor ĠK autom ator . Ċ Ġ* Ċ Ġ* ĠProvides Ġfunctionality Ġof Ġaggreg ating Ġintercept ors Ġand Ġinvoking Ġthem Ġon Ġ` check ` Ċ Ġ* Ġand Ġ` perform ` Ġinv ocations . Ċ Ġ* Ċ Ġ* Ġ@ see ĠUi Interceptor Ċ Ġ*/ Ċ interface ĠUi Delegate < Interaction , ĠAssertion , ĠAction > Ġ{ ĊĠĠĠ Ġval Ġinteraction : ĠInteraction ĊĠĠĠ Ġvar Ġinterceptor : ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >? ĊĊĠĠĠ Ġfun Ġscreen Intercept ors (): ĠIterable < Ui Interceptor < Interaction , ĠAssertion , ĠAction >> ĊĠĠĠ Ġfun Ġglobal Interceptor (): ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRuns Ġthe Ġintercept ors Ġavailable Ġfor Ġthe Ġgiven Ġdelegate Ġduring Ġthe Ġ` check ` Ġoperation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġcall Ġchain Ġhas Ġbeen Ġinterrupted Ġand Ġthere Ġis Ġno Ġneed Ġto Ġdo ĠUi Autom ator Ġcall , ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġfalse Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġintercept Check ( assertion : ĠAssertion ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġintercept ( ui Interceptor : ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintercept On All ( ui Interceptor ) Ġ|| Ġintercept On Check ( ui Interceptor , Ġassertion ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinterceptor ?. let Ġ{ Ġintercept ( it ) Ġ} Ġ?: Ġfalse Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Intercept ors (). any Ġ{ Ġintercept ( it ) Ġ} Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Interceptor ()?. let Ġ{ Ġintercept ( it ) Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRuns Ġthe Ġintercept ors Ġavailable Ġfor Ġthe Ġgiven Ġdelegate Ġduring Ġthe Ġ` execute ` Ġoperation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġcall Ġchain Ġhas Ġbeen Ġinterrupted Ġand Ġthere Ġis Ġno Ġneed Ġto Ġdo ĠUi Autom ator Ġcall , ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġfalse Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġintercept Perform ( action : ĠAction ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġintercept ( ui Interceptor : ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintercept On All ( ui Interceptor ) Ġ|| Ġintercept On Perform ( ui Interceptor , Ġaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinterceptor ?. let Ġ{ Ġintercept ( it ) Ġ} Ġ?: Ġfalse Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Intercept ors (). any Ġ{ Ġintercept ( it ) Ġ} Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Interceptor ()?. let Ġ{ Ġintercept ( it ) Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġintercept On All ( ui Interceptor : ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġui Interceptor . on All ?. let Ġ{ Ġ( is Override , Ġinter ception ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinter ception ( interaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Override ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġintercept On Check ( ui Interceptor : ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >, Ġassertion : ĠAssertion ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġui Interceptor . on Check ?. let Ġ{ Ġ( is Override , Ġinter ception ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinter ception ( interaction , Ġassertion ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Override ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġintercept On Perform ( ui Interceptor : ĠUi Interceptor < Interaction , ĠAssertion , ĠAction >, Ġaction : ĠAction ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġui Interceptor . on Perform ?. let Ġ{ Ġ( is Override , Ġinter ception ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinter ception ( interaction , Ġaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Override ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġ} Ċ }