/* Ċ Ġ* Ġ( 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 Ġio . gitlab . art urb os ch . de te kt . Det ek t Ċ import Ġio . gitlab . art urb os ch . de te kt . extensions . Det ek t Report Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Task Ċ import Ġorg . gradle . api . reporting . Report Container Ċ import Ġorg . gradle . api . reporting . Reporting Ċ import Ġorg . gradle . api . reporting . Single File Report Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Path Ċ import Ġjava . util . UUID Ċ Ċ class ĠDet ek t Report Failures Supplier Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġreporting : ĠDet ek t , ĊĠĠĠ Ġprivate Ġval Ġreport Handler : ĠReport Handler <* >) Ġ: ĠFail ures Supplier Ġ{ ĊĊĠ Ġ@ Throws ( IOException :: class ) ĊĠ Ġoverride Ġfun Ġget Failures (): ĠList < Failure > Ġ{ ĊĠĠĠ Ġval Ġsource Report Ġ= Ġreporting . xml Report File . or Null !!. as File ĊĠĠĠ Ġreturn ĠXml Utils . parse Xml ( report Handler , ĠFileInputStream ( source Report )). failures () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġhandle Internal Failure ( report Dir : ĠPath , Ġex : ĠRuntimeException ): ĠRuntimeException Ġ{ ĊĠĠĠ Ġval Ġreport Ġ= Ġreporting . xml Report File . or Null !!. as File ĊĠĠĠ Ġreturn ĠRuntimeException ( ĊĠĠĠĠĠĠĠ Ġ" Final izer Ġfailed ; Ġraw Ġreport Ġfiles Ġcan Ġbe Ġfound Ġat Ġ$ report ", Ġex ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġfun Ġcreate ( task : ĠDet ek t , Ġreport Handler : ĠReport Handler < Det ek t >): ĠDet ek t Report Failures Supplier Ġ{ ĊĠĠĠĠĠ Ġ// ĠEnsure Ġany Ġnecessary Ġoutput Ġis Ġenabled ĊĠĠĠĠĠ Ġtask . do First Ġ{ Ġreport Handler . configure Task ( task ) Ġ} ĊĠĠĠĠĠ Ġreturn ĠDet ek t Report Failures Supplier ( task , Ġreport Handler ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ