package Ġio . swagger . client . infrastructure Ċ Ċ import Ġcom . google . gson . Type Adapter Ċ import Ġcom . google . gson . stream . Json Reader Ċ import Ġorg . joda . time . format . ISO DateTime Format Ċ import Ġkotlin . Throws Ċ import Ġcom . google . gson . stream . Json Token Ċ import Ġcom . google . gson . stream . Json Writer Ċ import Ġorg . joda . time . DateTime Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠGson ĠType Adapter Ġfor ĠJ oda ĠDateTime Ġtype Ċ Ġ*/ Ċ class ĠDateTime Type Adapter Ġ: ĠType Adapter < DateTime ?> () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġformatter Ġ= ĠISO DateTime Format . dateTime () ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġwrite ( out : ĠJson Writer , Ġdate : ĠDateTime ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( date Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . null Value () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . value ( formatter . print ( date )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġread (` in `: ĠJson Reader ): ĠDateTime ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ(` in `. peek ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Token . NULL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` in `. next Null () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġ` in `. next String () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter . parse DateTime ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }