/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠMichael ĠRo z um y ans ki y Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . m ichael ro cks . g rip . io Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . util . jar . Jar Entry Ċ import Ġjava . util . jar . Jar File Ċ Ċ class ĠJar File Source ( private Ġval Ġjar File : ĠFile ) Ġ: ĠFile Source Ġ{ ĊĠ Ġprivate Ġval Ġjar Ġ= ĠJar File ( jar File , Ġtrue ) ĊĊĠ Ġoverride Ġfun Ġlist Files ( callback : Ġ( String , ĠFile Source . Entry Type ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfun ĠJar Entry . to Entry Type () Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠ Ġis Directory Ġ-> ĠFile Source . Entry Type . DIRECTORY ĊĠĠĠĠĠ Ġname . endsWith (". class ", Ġignore Case Ġ= Ġtrue ) Ġ-> ĠFile Source . Entry Type . CLASS ĊĠĠĠĠĠ Ġelse Ġ-> ĠFile Source . Entry Type . FILE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( entry Ġin Ġjar . entries ()) Ġ{ ĊĠĠĠĠĠ Ġcallback ( entry . name , Ġentry . to Entry Type ()) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠreadFile ( path : ĠString ): ĠByteArray Ġ{ ĊĠĠĠ Ġreturn Ġjar . get Jar Entry ( path ). let Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠ Ġjar . getInputStream ( entry ). use Ġ{ Ġstream Ġ-> Ġstream . read Bytes () Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġjar . close () ĊĠĠĠ Ġ} Ġcatch Ġ( exception : ĠIOException ) Ġ{ ĊĠĠĠĠĠ Ġ// ĠIgnore Ġthe Ġexception . ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" Jar File Source ($ jar File )" ĊĠ Ġ} Ċ } Ċ