package Ġcom . jd roid . java . http . parser . zip Ċ Ċ import Ġcom . jd roid . java . exception . Unexpected Exception Ċ import Ġcom . jd roid . java . http . parser . Parser Ċ import Ġcom . jd roid . java . utils . Logger Utils Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . util . zip . Zip InputStream Ċ Ċ /** Ċ Ġ* ĠParser Ġused Ġto Ġhandle Ġa Ġfile Ġcontained Ġinside Ġa Ġzip . Ċ Ġ* Ġ@ param Ġinner Parser Ġ[ com . jd roid . java . http . parser . Parser ] Ġto Ġuse Ġto Ġhandle Ġthe Ġextracted Ġfile . Ċ Ġ* Ġ@ param ĠfileName ĠName Ġof Ġthe Ġfile Ġto Ġextract Ġof Ġthe Ġzip . Ċ Ġ*/ Ċ class ĠZip File Parser ( private Ġval Ġinner Parser : ĠParser , Ġprivate Ġval ĠfileName : ĠString ) Ġ: ĠParser Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġparse ( inputStream : ĠInputStream ): ĠAny ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġzip InputStream Ġ= ĠZip InputStream ( inputStream ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġentry Ġ= Ġzip InputStream . next Entry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( entry Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . name Ġ== ĠfileName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOGGER . debug (" Starting Ġto Ġparse Ġ$ fileName Ġfile .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinner Parser . parse ( zip InputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Ġ= Ġzip InputStream . next Entry ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnexpected Exception ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġparse ( input : ĠString ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOGGER Ġ= ĠLogger Utils . getLogger ( Zip File Parser :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ