package Ġcom . te amb . local lib . parser Ċ Ċ import Ġorg . apache . commons . compress . arch ivers . se ven z . Se ven Z Archive Entry Ċ import Ġorg . apache . commons . compress . arch ivers . se ven z . Se ven Z File Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ Ċ class ĠParser 7 z Ġ: ĠParser Class (), ĠParser Interface Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġentries : ĠMutable List < Se ven Z Entry > ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠSe ven Z Entry ( internal Ġval Ġentry : ĠSe ven Z Archive Entry , Ġinternal Ġval Ġbytes : ĠByteArray ) ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġparse ( file : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġentries Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġval Ġseven Z File Ġ= ĠSe ven Z File ( file ) ĊĠĠĠĠĠĠĠ Ġvar Ġentry : ĠSe ven Z Archive Entry ? Ġ= Ġseven Z File . next Entry ĊĠĠĠĠĠĠĠ Ġwhile Ġ( entry Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġentry . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Image ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠByteArray ( entry . size . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseven Z File . read ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Se ven Z Entry ( entry , Ġcontent )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnot Ġhandling Ġcom ic info . xml ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry Ġ= Ġseven Z File . next Entry ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġentries . sortBy Ġ{ Ġit . entry . name Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnum Pages () Ġ= Ġentries . size ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġget Page ( num : ĠInt ): ĠInputStream Ġ= ĠByteArrayInputStream ( entries [ num ]. bytes ) ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġdestroy () Ġ{ ĊĠĠĠ Ġ} Ċ } Ċ