package Ġir . co bal . data . network . core Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Type Adapter Ċ import Ġcom . google . gson . Type Adapter Factory Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . google . gson . stream . Json Reader Ċ import Ġcom . google . gson . stream . Json Token Ċ import Ġcom . google . gson . stream . Json Writer Ċ import Ġjava . io . IOException Ċ Ċ class ĠNull StringTo Empty Adapter Factory Ġ: ĠType Adapter Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġcreate ( gson : ĠGson , Ġtype : ĠType Token < T >): ĠType Adapter < T >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġraw Type Ġ= Ġtype . raw Type Ġas ĠClass < *> ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( raw Type Ġ!= ĠString :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠString Null Adapter () Ġas ĠType Adapter < T > ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠString Null Adapter Ġ: ĠType Adapter < String >() Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġread ( reader : ĠJson Reader ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( reader . peek () Ġ== ĠJson Token . NULL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . next Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġreader . next String () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġwrite ( writer : ĠJson Writer , Ġvalue : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . null Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwriter . value ( value ) ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ