package Ġio . acon ite Ċ Ċ import Ġio . acon ite . Body Serializer . Factory Ċ import Ġkotlin . reflect . K Annotated Element Ċ import Ġkotlin . reflect . K Type Ċ Ċ /** Ċ Ġ* ĠUsed Ġto Ġserialize Ġand Ġdeserialize Ġobject Ġto Ġstring . ĠString Ġcan Ġbe Ċ Ġ* Ġheader , Ġquery Ġor Ġpath Ġparameter . Ċ Ġ*/ Ċ interface ĠString Serializer Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUsed Ġto Ġcreate Ġ[ String Serializer ] Ġfor Ġconcrete Ġtype . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠFactory Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġ[ String Serializer ] Ġfor Ġ[ type ]. ĠIf Ġthis Ġserializer Ġdoes Ġnot Ġsupport ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ type ], Ġthen Ġit Ġmust Ġreturn Ġ` null `. ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param [ annotations ] Ġannotations Ġof Ġfunction , Ġfield Ġor Ġargument Ġto Ġbe Ġserialized ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param [ type ] Ġtype Ġof Ġobject Ġto Ġbe Ġserialized ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġserializer Ġfor Ġ[ type ] Ġor Ġ` null ` Ġif Ġ[ type ] Ġis Ġnot Ġsupported ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( annotations : ĠK Annotated Element , Ġtype : ĠK Type ): ĠString Serializer ? ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSerial izes Ġ[ obj ] Ġto Ġstring . ĠThe Ġ[ obj ] Ġmust Ġbe Ġof Ġtype , Ġthat Ġwas Ġpassed ĊĠĠĠĠ Ġ* Ġto Ġ[ Factory . create ] Ġfunction . ĊĠĠĠĠ Ġ* Ġ@ param [ obj ] Ġto Ġbe Ġserialized ĊĠĠĠĠ Ġ* Ġ@ return Ġserialized Ġstring ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġserialize ( obj : ĠAny ?): ĠString ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeserial izes Ġ[ s ] Ġto Ġobject Ġwith Ġtype , Ġthat Ġwas Ġpassed Ġto Ġ[ Factory . create ] Ġfunction . ĊĠĠĠĠ Ġ* Ġ@ param [ s ] Ġto Ġbe Ġdeserialized ĊĠĠĠĠ Ġ* Ġ@ return Ġdeserialized Ġobject ĊĠĠĠĠ Ġ* Ġ@ throws [ BadRequest Exception ] Ġif Ġ[ s ] Ġcontent Ġcan Ġnot Ġbe Ġdeserialized ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdeserialize ( s : ĠString ): ĠAny ? Ċ }