/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġ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 . lights aber . processor . generation Ċ Ċ import Ġio . m ichael ro cks . lights aber . processor . Error Reporter Ċ import Ġio . m ichael ro cks . lights aber . processor . Processing Exception Ċ import Ġio . m ichael ro cks . lights aber . processor . io . File Sink Ċ import Ġio . m ichael ro cks . lights aber . processor . logging . getLogger Ċ import Ġjava . io . IOException Ċ Ċ class ĠProcessor Class Producer ( ĊĠ Ġprivate Ġval Ġfile Sink : ĠFile Sink , ĊĠ Ġprivate Ġval Ġerror Reporter : ĠError Reporter Ċ ) Ġ: ĠClass Producer Ġ{ ĊĊĠ Ġprivate Ġval Ġlogger Ġ= Ġget Logger () ĊĊĠ Ġoverride Ġfun Ġproduce Class ( internal Name : ĠString , Ġclass Data : ĠByteArray ) Ġ{ ĊĠĠĠ Ġlogger . debug (" Pro ducing Ġclass Ġ{}", Ġinternal Name ) ĊĠĠĠ Ġval Ġclass FileName Ġ= Ġinternal Name Ġ+ Ġ". class " ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġfile Sink . create File ( class FileName , Ġclass Data ) ĊĠĠĠ Ġ} Ġcatch Ġ( exception : ĠIOException ) Ġ{ ĊĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Failed Ġto Ġproduce Ġclass Ġwith Ġ% d Ġbytes ". format ( class Data . size ) ĊĠĠĠĠĠ Ġerror Reporter . report Error ( Processing Exception ( message , Ġexception , Ġclass FileName )) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ