/* Ċ Ġ* Ġ( c ) ĠCopyright Ġ 2 0 1 7 ĠPal ant ir ĠTechnologies ĠInc . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . pal ant ir . gradle . junit Ċ Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . Writer Ċ import Ġjavax . xml . parsers . Parser ConfigurationException Ċ import Ġjavax . xml . parsers . SAX Parser Factory Ċ import Ġjavax . xml . transform . Output Keys Ċ import Ġjavax . xml . transform . Transformer Ċ import Ġjavax . xml . transform . Transformer Exception Ċ import Ġjavax . xml . transform . Transformer Factory Ċ import Ġjavax . xml . transform . dom . DOM Source Ċ import Ġjavax . xml . transform . stream . Stream Result Ċ import Ġorg . w 3 c . dom . Document Ċ import Ġorg . xml . sax . Input Source Ċ import Ġorg . xml . sax . SAX Exception Ċ import Ġorg . xml . sax . XML Reader Ċ Ċ object ĠXml Utils Ġ{ ĊĊĠ Ġ@ Throws ( IOException :: class ) ĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġ< T Ġ: ĠReport Handler <* >> Ġparse Xml ( handler : ĠT , Ġreport : ĠInputStream ): ĠT Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġxml Reader Ġ= ĠSAX Parser Factory . newInstance (). new SAX Parser (). xml Reader ĊĠĠĠĠĠ Ġxml Reader . content Handler Ġ= Ġhandler ĊĠĠĠĠĠ Ġxml Reader . parse ( Input Source ( report )) ĊĠĠĠĠĠ Ġreturn Ġhandler ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠSAX Exception ) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠIOException ( e ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠParser ConfigurationException ) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠIOException ( e ) ĊĠĠĠ Ġ} ĊĊĠ Ġ} ĊĊĠ Ġ@ Throws ( Transformer Exception :: class ) ĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġwrite ( writer : ĠWriter , Ġdocument : ĠDocument ): ĠWriter Ġ{ ĊĠĠĠ Ġval Ġtransformer Ġ= ĠTransformer Factory . newInstance (). new Transformer () ĊĠĠĠ Ġtransformer . setOutput Property ( Output Keys . IND ENT , Ġ" yes ") ĊĠĠĠ Ġtransformer . setOutput Property ( Output Keys . METHOD , Ġ" xml ") ĊĠĠĠ Ġtransformer . setOutput Property ( Output Keys . ENCODING , Ġ" UTF - 8 ") ĊĠĠĠ Ġtransformer . transform ( DOM Source ( document ), ĠStream Result ( writer )) ĊĠĠĠ Ġreturn Ġwriter ĊĠ Ġ} Ċ } Ċ