package Ġio . github . deb op . redis . serializer Ċ Ċ import Ġcom . es ot eric software . k ry o . io . Input Ċ import Ġcom . es ot eric software . k ry o . io . Output Ċ import Ġmu . K Logging Ċ import Ġorg . springframework . data . redis . serializer . Redis Serializer Ċ import Ġorg . springframework . data . redis . serializer . Serialization Exception Ċ import Ġjava . io . ByteArray OutputStream Ċ Ċ /** Ċ Ġ* ĠK ry o Ġë ¥ ¼ ĠìĿ´ìļ© íķľ ĠObject Serializer Ċ Ġ* ĠThread - safe Ġë ¥ ¼ Ġì§Ģ ìĽĲ íķĺë©´ ĠSize Ġê°Ģ Ġíģ ° ĠD TO ìĿĺ Ġê²½ìļ° ĠBinary ĠSerializer Ġë³´ ëĭ¤ ĠëįĶ ĠëĬ Ĳ ë¦ ° Ġê²½ìļ° ê°Ģ ĠìŀĪëĭ¤ Ċ Ġ* Ġë¬ ¼ ë¡ ł ĠThread - safe Ġíķĺ ì§Ģ ĠìķĬ ìľ¼ ë©´ ĠBinary ĠSerializer Ġë³´ ëĭ¤ Ġë¹ ł ë¥´ ëĭ¤ Ġ( ëĭ¨ ĠìĤ¬ìļ©íķł ĠìĪĺ ĠìĹĨ ëĭ¤ ) Ċ Ġ* Ċ Ġ* Ġ@ author Ġdeb op Ċ Ġ* Ġ@ since Ġ 1 9 . Ġ 6 . Ġ 1 4 Ċ Ġ*/ Ċ class ĠK ry o Redis Serializer Ġ: ĠRedis Serializer < Any > Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠINSTANCE : ĠK ry o Redis Serializer Ġby Ġlazy Ġ{ ĠK ry o Redis Serializer () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( graph : ĠAny ?): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( graph Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠByteArray ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArrayOutputStream (). use Ġ{ Ġb os Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOutput ( bos ). use Ġ{ Ġoutput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK ry o Utils . with K ry o Ġ{ Ġwrite Class And Object ( output , Ġgraph ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . flush () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb os . toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠSerialization Exception (" Cannot Ġserialize ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( bytes : ĠByteArray ?): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bytes Ġ== Ġnull Ġ|| Ġbytes . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput ( bytes ). use Ġ{ Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK ry o Utils . with K ry o Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Class And Object ( input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠSerialization Exception (" Cannot Ġdeserialize ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }