package Ġuk . n hs . n hs x . vi ro logy . tok eng en Ċ Ċ import Ġnet . ling ala . zip 4 j . Zip File Ċ import Ġnet . ling ala . zip 4 j . model . Zip Parameters Ċ import Ġnet . ling ala . zip 4 j . model . enums . Encryption Method Ċ import Ġuk . n hs . n hs x . di agnosis key dist . key distribution . Key File Utility Ċ import Ġuk . n hs . n hs x . domain . C ta Token Ċ import Ġuk . n hs . n hs x . domain . Test EndDate Ċ import Ġuk . n hs . n hs x . domain . TestResult Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Path Ċ Ċ class ĠV iro logy Processor Exports ( private Ġval Ġtemp DirPath : ĠString Ġ= ĠSystem . getProperty (" java . io . tmpdir ") Ġ+ ĠFile . separator ) Ġ{ ĊĊĠĠĠ Ġconstructor ( temp Dir : ĠPath ) Ġ: Ġthis ( temp Dir . to AbsolutePath (). toString ()) ĊĊĠĠĠ Ġfun Ġcsv From ( tokens : ĠList < C ta Token >, Ġtest Result : ĠTest Result , Ġtest EndDate : ĠTest EndDate ): ĠString Ġ= Ġtokens ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ""" ${ it . value }, Ġ${ test Result . wire Value }, Ġ${ Test EndDate . show ( test EndDate )} """ Ġ} ĊĠĠĠĠĠĠĠ Ġ. join ToString ( prefix Ġ= Ġ" cta Ġtoken , Ġtest Ġresult , Ġtest Ġend Ġdate \ n ", Ġseparator Ġ= Ġ"\ n ") Ġ{ Ġit Ġ} ĊĊĠĠĠ Ġfun Ġzip From ( zip FileName : ĠString , Ġc ta Tokens Csv : ĠList < C ta Tokens Csv >, Ġzip File Password : ĠString ? Ġ= Ġnull ): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġzip File Entries Ġ= Ġc ta Tokens Csv . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcsv File Ġ= ĠFile . create TempFile ( it . filename , Ġ". csv ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey File Utility . write ToFile ( csv File , Ġit . content . toByteArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZip File Entry ( csv File , Ġit . filename ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġzip File ( zip FileName , Ġzip File Entries , Ġzip File Password ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġzip File ( zip FileName : ĠString , Ġzip Entry File : ĠList < Zip File Entry >, Ġpassword : ĠString ?): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġ"$ temp DirPath $ zip FileName . zip " ĊĊĠĠĠĠĠĠĠ Ġval Ġzip File Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ!= Ġnull Ġ-> ĠZip File ( filename , Ġpassword . toCharArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠZip File ( filename ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġzip Entry File . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġzip File . add File ( it . file , Ġzip Parameters From ( it , Ġpassword )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġzip File . file ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġzip Parameters From ( it : ĠZip File Entry , Ġpassword : ĠString ?) Ġ= ĠZip Parameters (). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠfileName In Zip Ġ= Ġit . filename ĊĠĠĠĠĠĠĠ Ġif Ġ( password Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Encrypt Files Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġencryption Method Ġ= ĠEncryption Method . AES ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠZip File Entry ( val Ġfile : ĠFile , Ġval Ġfilename : ĠString ) Ċ