/* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġto Ġyou Ġ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 Ġorg . apache . t inker pop 4 . gre mlin . util Ċ Ċ import Ġjava . io . ByteArray InputStream Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMark o ĠA . ĠRod rig ue z Ġ( http :// mark or od rig ue z . com ) Ċ Ġ*/ Ċ object ĠSerializer Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġserialize Object (` object `: ĠObject ?): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠObject OutputStream ( output Stream ) ĊĠĠĠĠĠĠĠ Ġout . write Object (` object `) ĊĠĠĠĠĠĠĠ Ġout . close () ĊĠĠĠĠĠĠĠ Ġreturn ĠoutputStream . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class , ĠClass NotFoundException :: class ) ĊĠĠĠ Ġfun Ġdeserialize Object ( object Bytes : ĠByteArray ?): ĠObject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= ĠByteArrayInputStream ( object Bytes ) ĊĠĠĠĠĠĠĠ Ġval Ġ` in ` Ġ= ĠObject InputStream ( inputStream ) ĊĠĠĠĠĠĠĠ Ġval Ġ` object `: ĠObject Ġ= Ġ` in `. read Object () ĊĠĠĠĠĠĠĠ Ġ` in `. close () ĊĠĠĠĠĠĠĠ Ġreturn Ġ` object ` ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class , ĠClass NotFoundException :: class ) ĊĠĠĠ Ġfun Ġ< V > Ġclone Object (` object `: ĠV ): ĠV Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdeserialize Object ( serialize Object (` object ` )) ĊĠĠĠ Ġ} Ċ }