package Ġe ece 5 1 3 . common . mapper Ċ Ċ import Ġcom . google . protobuf . InvalidProtocolBufferException Ċ import Ġe ece 5 1 3 . common . Connection Ċ import Ġe ece 5 1 3 . common . model . Connection Purpose Ċ Ċ class ĠConnection Purpose Mapper Ġ: ĠObjectMapper < Connection Purpose >, ĠByte Mapper < Connection Purpose > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġto ByteArray ( obj : ĠConnection Purpose ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġwhen Ġ( obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConnection Purpose . Node Join Ġ-> ĠConnection . Purpose . Type . JOIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConnection Purpose . Client Remove Ġ-> ĠConnection . Purpose . Type . REMOVE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConnection Purpose . Client Get Ġ-> ĠConnection . Purpose . Type . GET ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConnection Purpose . Client Put Ġ-> ĠConnection . Purpose . Type . PUT ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠConnection . Purpose . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Object OrNull ( byteArray : ĠByteArray ): ĠConnection Purpose ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( byteArray . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠEmpty ByteArray Exception (" byteArray Ġcan 't Ġbe Ġempty !") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparsed : ĠConnection . Purpose ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparsed Ġ= ĠConnection . Purpose . parseFrom ( byteArray ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInvalid ProtocolBufferException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( parsed . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection . Purpose . Type . GET Ġ-> ĠConnection Purpose . Client Get () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection . Purpose . Type . PUT Ġ-> ĠConnection Purpose . Client Put () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection . Purpose . Type . REMOVE Ġ-> ĠConnection Purpose . Client Remove () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection . Purpose . Type . JOIN Ġ-> ĠConnection Purpose . Node Join () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" unrecognized Ġtype ! Ġ${ parsed . type . name }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }