/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" unused ") Ċ Ċ package Ġkotlin . script . experimental . jvm host Ċ Ċ import Ġkotlin . script . experimental . api .* Ċ import Ġkotlin . script . experimental . util . Properties Collection Ċ Ċ open Ġclass ĠJ vm Script Evaluation Configuration Ġ: ĠProperties Collection . Builder () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠJ vm Script Evaluation Configuration () Ċ } Ċ Ċ val ĠJ vm Script Evaluation Configuration . base ClassLoader Ġby ĠProperties Collection . key < ClassLoader ? >( Thread . currentThread (). context ClassLoader ) Ċ Ċ val ĠScript Evaluation Configuration . jvm Ġget () Ġ= ĠJ vm Script Evaluation Configuration () Ċ Ċ open Ġclass ĠBasic Jvm Script Evaluator Ġ: ĠScript Evaluator Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġcompiled Script : ĠComp iled Script <* >, ĊĠĠĠĠĠĠĠ Ġscript Evaluation Configuration : ĠScript Evaluation Configuration ? ĊĠĠĠ Ġ): ĠResult With Diagnostics < Evaluation Result > Ġ= ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġcompiled Script . getClass ( script Evaluation Configuration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( res ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult With Diagnostics . Failure Ġ-> Ġres ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult With Diagnostics . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġin Ġthe Ġfuture , Ġwhen Ġ( if ) Ġwe 'll Ġstop Ġto Ġcompile Ġeverything Ġinto Ġconstructor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġrun Ġas ĠSAM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreturn Ġres ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscript Class Ġ= Ġres . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠArrayList < Any ?> () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscript Evaluation Configuration ?. get ( Script Evaluation Configuration . provided Properties )?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . add ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscript Evaluation Configuration ?. get ( Script Evaluation Configuration . implicit Re ceiv ers )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscript Evaluation Configuration ?. get ( Script Evaluation Configuration . constructor Args )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctor Ġ= Ġscript Class . java . construct ors . single () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= Ġctor . newInstance (* args . toArray ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġfix Ġresult Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult With Diagnostics . Success ( Evaluation Result ( Result Value . Value ("", Ġinstance , Ġ""), Ġscript Evaluation Configuration )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult With Diagnostics . Failure ( e . as Diagnostics (" Error Ġevaluating Ġscript ")) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ