package Ġorg . mas pit z ner . pres ences im ulation . parsers Ċ Ċ import Ġorg . joda . time . DateTime Ċ import Ġorg . mas pit z ner . pres ences im ulation . utils . configuration .* Ċ import Ġorg . mas pit z ner . pres ences im ulation . utils . exceptions . Missing Parameter Exception Ċ import Ġorg . mas pit z ner . pres ences im ulation . utils . exceptions . No ConfigurationException Ċ import Ġorg . mas pit z ner . pres ences im ulation . utils . exceptions . Wrong Parameter Choice Exception Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠClass Ġwhich Ġprovides Ġthe Ġfunctionality Ġto Ġextract ĠCommand line Arguments Ċ Ġ* Ġ@ param Ġargs Ġthe Ġcommand line Ġarguments Ċ Ġ*/ Ċ class ĠCommandLine ConfigParser ( private Ġval Ġargs : ĠArray < String >) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbase Out Path Ġ= Ġ"${ File (" "). absolute Path }${ File . separator Char } sim out ${ File . separator Char }" ĊĠĠĠ Ġprivate Ġval Ġextracted Args Ġ= Ġextract Parameter () ĊĠĠĠ Ġval Ġconfig : ĠConfiguration ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreads Ġthe Ġcommand line Ġarguments Ġon Ġconstruction ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġevaluation Run Ġ= Ġextract Boolean Parameter ("- eval ") ĊĠĠĠĠĠĠĠ Ġval Ġevaluation Single Ġ= Ġif Ġ( evaluation Run ) Ġextract Boolean Parameter ("- eval single ") Ġelse Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġfile Output Run Ġ= Ġextract Boolean Parameter ("- output ") ĊĊĠĠĠĠĠĠĠ Ġval Ġevent Model Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evaluation Run Ġ&& Ġ! eval With Specific Model ("")) ĠEvent Model Types . EVAL Ġelse Ġextract Event Model Type () ĊĠĠĠĠĠĠĠ Ġval Ġtimestamp Model Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evaluation Run Ġ&& Ġ! eval With Specific Model ("")) ĠTimestamp Model Types . EVAL Ġelse Ġextract Timestamp Model Type () ĊĠĠĠĠĠĠĠ Ġval Ġlog Provider Type Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evaluation Run Ġ&& Ġ! eval With Specific Model ("")) ĠLog Provider Types . MOCK _ PROVIDER Ġelse Ġextract Log Provider Type () ĊĠĠĠĠĠĠĠ Ġval Ġweather DataProvider Type Ġ= Ġextract Weather DataProvider Type () ĊĠĠĠĠĠĠĠ Ġval Ġlog Path Ġ= Ġif Ġ( evaluation Run Ġ&& Ġ! eval With Specific Model ("")) Ġ"" Ġelse Ġextract Path ("- log ") ĊĠĠĠĠĠĠĠ Ġval Ġweather Data Path Ġ= Ġextract Path ("- weather data ") ĊĠĠĠĠĠĠĠ Ġval Ġoutput Path Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextract String Parameter ("- output path "). if Empty Ġ{ Ġ"${ base Out Path } log Output ${ File . separator Char } generated Log . log " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġeval Path Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextract String Parameter ("- eval path "). if Empty Ġ{ Ġ"${ base Out Path } evaluation ${ File . separator Char }" Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġeval Iterations Ġ= Ġparse Value ("- eval iterations ") ĊĠĠĠĠĠĠĠ Ġval Ġeval Real Ġ= Ġextract Boolean Parameter ("- real ") ĊĠĠĠĠĠĠĠ Ġval Ġtime Eval Ġ= Ġextract Boolean Parameter ("- time ") ĊĠĠĠĠĠĠĠ Ġval ĠnumOf Events Ġ= Ġparse Value ("- events ") ĊĠĠĠĠĠĠĠ Ġval Ġduration Ġ= Ġparse Value ("- until ") ĊĠĠĠĠĠĠĠ Ġval Ġuntil Time Ġ= ĠDateTime . now (). plus Hours ( duration ) ĊĠĠĠĠĠĠĠ Ġval Ġtoken List Ġ= Ġextract Token List ("- devices ") ĊĠĠĠĠĠĠĠ Ġconfig Ġ= ĠConfiguration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Provider Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweather DataProvider Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Model Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Model Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweather Data Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluation Run , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluation Single , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeval Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Output Run , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeval Iterations , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Eval , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeval Real , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( num Of Events Ġ> Ġ 0 ) ĠnumOf Events Ġelse Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( until Time . is After Now Ġ&& Ġduration Ġ> Ġ 0 ) Ġuntil Time Ġelse Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken List ĊĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġextract s Ġall Ġcommand line Ġparameters Ġas Ġhash map ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Parameter (): ĠHashMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNo ConfigurationException () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġval Ġlast Index Ġ= Ġargs . indexOf Last Ġ{ Ġit . contains ("- ") Ġ} Ġ+ Ġ 1 ĊĊĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġlast Index ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparam Ġ= Ġargs [ it ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġif Ġ( it Ġ+ Ġ 1 Ġ< Ġargs . size Ġ&& Ġ! args [ it Ġ+ Ġ 1 ]. contains ("- ")) Ġargs [ it Ġ+ Ġ 1 ] Ġelse Ġ" true " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( param . contains ("- ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters [ param . toLowerCase ()] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġparameters ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdetermines Ġthe Ġtype Ġof Ġevent model Ġto Ġuse ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġevent model Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Event Model Type (): ĠEvent Model Types Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! extract ed Args . containsKey ("- event model ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠMissing Parameter Exception (" Event ĠModel ĠType Ġ(- event Model /- event model )") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( extract ed Args [" - event model "] !!. toLowerCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mock " Ġ-> ĠEvent Model Types . MOCK _ EVENT _ MODEL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mk m " Ġ-> ĠEvent Model Types . MK M ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cm km " Ġ-> ĠEvent Model Types . CM KM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ml p " Ġ-> ĠEvent Model Types . ML PM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" lstm " Ġ-> ĠEvent Model Types . LST MM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Parameter Choice Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- event model /- event Model ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdetermines Ġthe Ġtype Ġof Ġtimestamp Ġmodel Ġto Ġuse ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġtimestamp Ġmodel Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Timestamp Model Type (): ĠTimestamp Model Types Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! extract ed Args . containsKey ("- timestamp model ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠMissing Parameter Exception (" Event ĠModel ĠType Ġ(- timestamp model /- timestamp Model )") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( extract ed Args [" - timestamp model "] !!. toLowerCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mock " Ġ-> ĠTimestamp Model Types . MOCK _ TIMESTAMP _ MODEL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ut sm " Ġ-> ĠTimestamp Model Types . UT SM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pt sm " Ġ-> ĠTimestamp Model Types . PT SM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cpt sm " Ġ-> ĠTimestamp Model Types . CP T SM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" t ft sm " Ġ-> ĠTimestamp Model Types . T FT SM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" lstm ts m " Ġ-> ĠTimestamp Model Types . L STMT SM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Parameter Choice Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- timestamp Model /- timestamp model ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdetermines Ġthe Ġtype Ġof Ġlog Ġprovider Ġto Ġuse ĊĠĠĠĠ Ġ* Ġmainly Ġfor Ġlater Ġextensions ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġlog Ġprovider Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Log Provider Type (): ĠLog Provider Types Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! extract ed Args . containsKey ("- log provider ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠMissing Parameter Exception (" Log ĠProvider ĠType Ġ(- log provider /- log Provider )") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( extract ed Args [" - log provider "] !!. toLowerCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mock " Ġ-> ĠLog Provider Types . MOCK _ PROVIDER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" open hab " Ġ-> ĠLog Provider Types . OPEN HAB _ PROVIDER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Parameter Choice Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- log Provider /- log provider ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdetermines Ġthe Ġtype Ġof Ġweather Ġdata Ġprovider Ġto Ġuse ĊĠĠĠĠ Ġ* Ġmainly Ġfor Ġlater Ġextensions ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġweather Ġdata Ġprovider Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Weather DataProvider Type (): ĠWeather DataProvider Types Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! extract ed Args . containsKey ("- weather dat apro vider ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠMissing Parameter Exception (" Weather ĠData ĠProvider ĠType Ġ(- weather dat apro vider /- weather DataProvider )") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( extract ed Args [" - weather dat apro vider "] !!. toLowerCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mock " Ġ-> ĠWeather DataProvider Types . MOCK _ PROVIDER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" open weather " Ġ-> ĠWeather DataProvider Types . OPEN _ WE ATHER _ MAP _ PROVIDER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Parameter Choice Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- weather dat apro vider /- weather DataProvider ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġextract s Ġa Ġboolean Ġparameter Ġfor Ġa Ġgiven Ġkey ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġthe Ġkey Ġfor Ġthe Ġparameter ĊĠĠĠĠ Ġ* Ġ@ return Ġ Ġwhether Ġthe Ġparam ater Ġis Ġset Ġor Ġnot ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Boolean Parameter ( key : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġextracted Args . containsKey ( key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġextract s Ġa Ġstring Ġparameter Ġfor Ġa Ġgiven Ġkey ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġthe Ġkey Ġfor Ġthe Ġparameter ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġvalue Ġof Ġthe Ġstring Ġparameter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract String Parameter ( key : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( extract ed Args . containsKey ( key )) Ġextracted Args [ key ]. toString () Ġelse Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġextract s Ġa Ġpath Ġparameter Ġfor Ġa Ġgiven Ġkey ĊĠĠĠĠ Ġ* Ġchecks Ġthe Ġavailability Ġof Ġthe Ġpath Ġ( ex istence Ġand Ġread ability ) ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġthe Ġkey Ġfor Ġthe Ġparameter ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġvalue Ġof Ġthe Ġpath Ġparameter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Path ( key : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( extract ed Args . containsKey ( key ) Ġ&& Ġis All Readable And Exists ( extract ed Args [ key ]. toString ()) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextracted Args [ key ]. toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠMissing Parameter Exception ("$ key Ġ[ m ight Ġbe Ġnot Ġreadable ] Ġ${ extract ed Args [ key ]. toString () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġextracted Args [ key ]. toString () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġchecks Ġthe Ġexistence Ġand Ġread ability Ġof Ġa Ġgiven Ġpath Ġas Ġst ing ĊĠĠĠĠ Ġ* Ġ@ param Ġpath Ġthe Ġpath Ġto Ġcheck ĊĠĠĠĠ Ġ* Ġ@ return Ġwhether Ġthe Ġfile Ġat Ġthe Ġpath Ġos Ġreadable Ġand Ġexisting ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis All Readable And Exists ( path : ĠString ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( path ). exists () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ((( File ( path ). isDirectory ) Ġ&& ĠFile ( path ). list Files ()?. all Ġ{ Ġit . can Read () Ġ} Ġ?: Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠFile ( path ). can Read ()) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreturns Ġwhether Ġit Ġis Ġa Ġan Ġevaluation Ġrun Ġfor Ġa Ġsingle Ġmodel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġeval With Specific Model ( additional Key : ĠString ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġextracted Args . containsKey ("- event model ") Ġ&& Ġextracted Args . containsKey ("- timestamp model ") Ġ&& Ġif Ġ( additional Key . isNotEmpty ()) Ġextracted Args . containsKey ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Key ĊĠĠĠĠĠĠĠ Ġ) Ġelse Ġtrue ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġextract s Ġan Ġinteger Ġparameter ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġthe Ġkey Ġfor Ġthe Ġinteger Ġparameter ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġvalue Ġof Ġthe Ġinteger Ġparameter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġparse Value ( key : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġextracted Args [ key ]?. trim ()?. toInt () Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġextract Token List ( key : ĠString ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġextracted Args [ key ]?. split ("; ") ?. map Ġ{ Ġit . toLowerCase (). trim () Ġ} Ġ?: ĠlistOf (" deck e ") ĊĠĠĠ Ġ} Ċ Ċ }