package Ġcom . github . only 5 2 6 0 7 . lu akt . userdata . function Ċ Ċ import Ġcom . github . only 5 2 6 0 7 . lu akt . Value Mapper Ċ import Ġorg . lu aj . vm 2 . Lua Value Ċ import Ġorg . lu aj . vm 2 . Var args Ċ import Ġorg . lu aj . vm 2 . lib . Var Arg Function Ċ import Ġkotlin . reflect . K Function Ċ Ċ open Ġclass ĠLua Kotlin Over loaded Function ( ĊĠĠĠ Ġprivate Ġval Ġlua Kotlin Functions : ĠCollection < Lua Kotlin Function > Ċ ) Ġ: ĠVar Arg Function () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Invoke ( args : ĠVar args ?): ĠVar args Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( lua Kotlin Functions . isEmpty ()) Ġthrow ĠParameter Not Match Exception (" Required Ġat Ġleast Ġone ĠLua Kotlin Function Ġto Ġinvoke ") ĊĠĠĠĠĠĠĠ Ġval Ġerror Info Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġlua Kotlin Functions . forEach Ġ{ Ġf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ on Invoke Ġf . invoke ( args ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParameter Not Match Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Info . append ("$ f : Ġ${ e . message }\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠParameter Not Match Exception ("${ lua Kotlin Functions . size } Ġoverload Ġfunction Ġhas Ġbeen Ġtried Ġas Ġfollow , Ġbut Ġfailed Ġto Ġmatch Ġthe Ġcorresponding Ġover loaded Ġfunction .\ n $ error Info ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto string (): ĠLua Value Ġ= ĠLua Value . valueOf ( toString ()) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( lua Kotlin Functions . isEmpty ()) Ġ"" Ġelse Ġlua Kotlin Functions . join ToString ( separator Ġ= Ġ"\ n ") Ġ{ Ġit . toString () Ġ} Ċ } Ċ Ċ fun ĠCollection < K Function <* >> . join As Lua Kotlin Over loaded Function ( ĊĠĠĠ Ġvalue Mapper : ĠValue Mapper , ĊĠĠĠ Ġparameter Builder : ĠParameter Builder Ġ= ĠParameter Builder . Default ( value Mapper ), ĊĠĠĠ Ġfunction Caller : ĠFunction Caller Ġ= ĠFunction Caller . Blocking Ċ ) Ġ= ĠLua Kotlin Over loaded Function ( map Ġ{ ĠLua Kotlin Function ( it , Ġvalue Mapper , Ġparameter Builder , Ġfunction Caller ) Ġ})