package Ġcom . jo h nt ur k son . aws . dynamodb . serializers Ċ Ċ import Ġcom . jo h nt ur k son . aws . dynamodb . requests . GetItem Request Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Decoder Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ import Ġkotlinx . serialization . json . Json Decoder Ċ import Ġkotlinx . serialization . json . Json Element Ċ import Ġkotlinx . serialization . json . Json Encoder Ċ Ċ class ĠGet Item Request Serializer < T >( data Serializer : ĠK Serializer < T >) Ġ: ĠK Serializer < GetItem Request < T >> Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor Ġ= ĠGet Item Request . serializer ( data Serializer ). descriptor ĊĠĠĠ Ġprivate Ġval Ġrequest Serializer Ġ= ĠGet Item Request . serializer ( Json Element . serializer ()) ĊĠĠĠ Ġprivate Ġval Ġtransform ing Serializer Ġ= ĠTransform ing Serializer ( data Serializer ) ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠGet Item Request < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( encoder Ġis ĠJson Encoder ) ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġencoder . json . encode ToJson Element ( transform ing Serializer , Ġvalue . key ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠGet Item Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtableName Ġ= Ġvalue . tableName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Attribute Names Ġ= Ġvalue . expression Attribute Names , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprojection Expression Ġ= Ġvalue . projection Expression , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconsistent Read Ġ= Ġvalue . consistent Read , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġencoder . encode Serializable Value ( request Serializer , Ġrequest ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠGet Item Request < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( decoder Ġis ĠJson Decoder ) ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġdecoder . decode Json Element () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdecoder . json . decode FromJson Element ( request Serializer , Ġelement ) ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġdecoder . json . decode FromJson Element ( transform ing Serializer , Ġrequest . key ) ĊĠĠĠĠĠĠĠ Ġreturn ĠGet Item Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtableName Ġ= Ġrequest . tableName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Attribute Names Ġ= Ġrequest . expression Attribute Names , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprojection Expression Ġ= Ġrequest . projection Expression , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconsistent Read Ġ= Ġrequest . consistent Read ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ