package Ġcom . ek ino . end 2 end . service Ċ Ċ import Ġcom . ek ino . end 2 end . dto .* Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . FileReader Ċ import Ġjava . io . IOException Ċ Ċ class ĠResults Reader Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠRESULT S _ FILENAME _ PER _ TYPE Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . REQUEST Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Origin . ACT UAL Ġto Ġ" scripts / jmeter _ output . csv ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Origin . REFERENCE Ġto Ġ" scripts / plot - reference / jmeter _ output . csv "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . VM Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Origin . ACT UAL Ġto Ġ" scripts / vm _ output . csv ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Origin . REFERENCE Ġto Ġ" scripts / plot - reference / vm _ output . csv ")) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCSV _ SEPARATOR _ PER _ TYPE Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . REQUEST Ġto Ġ",", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . VM Ġto Ġ"; ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠRESULT _ CLASS _ PER _ TYPE Ġ: ĠMap Ġ< Result Type , Ġ( List < String >) Ġ-> ĠI TestResult > Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . REQUEST Ġto Ġ{ Ġcolumns Ġ-> ĠRequest TestResult ( columns ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . VM Ġto Ġ{ Ġcolumns Ġ-> ĠVM TestResult ( columns ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread Results ( type : ĠResult Type , Ġorigin : ĠResult Origin ) Ġ: ĠList < ITest Result > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfile Reader : ĠBufferedReader ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠArrayList < ITest Result >() ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Reader Ġ= ĠBufferedReader ( FileReader ( RESULTS _ FILENAME _ PER _ TYPE [ type ] ! ![ origin ])) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġline Ġ= Ġfile Reader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtokens Ġ= Ġline . split ( CSV _ SEPARATOR _ PER _ TYPE [ type ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tokens . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠRESULT _ CLASS _ PER _ TYPE [ type ] !!. invoke ( tokens ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Ġ= Ġfile Reader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Error Ġwhile Ġreading Ġthe Ġfile Ġ${ RESULTS _ FILENAME _ PER _ TYPE [ type ]} ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 4 ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Reader !!. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Error Ġwhile Ġclosing Ġthe Ġstream Ġfor Ġfile Ġ${ RESULTS _ FILENAME _ PER _ TYPE [ type ]} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} Ċ }