package Ġorg . jetbrains . spe k . tool ing Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . module . kotlin . readValue Ċ import Ġcom . fasterxml . jackson . module . kotlin . register Kotlin Module Ċ Ċ /** Ċ Ġ* Ġ@ author ĠR anie ĠJ ade ĠRam iso Ċ Ġ*/ Ċ class ĠPath (@ JsonProperty (" type ") Ġval Ġtype : ĠPath Type , ĊĠĠĠĠĠĠĠĠĠĠ Ġ@ JsonProperty (" description ") Ġval Ġdescription : ĠString , ĊĠĠĠĠĠĠĠĠĠĠ Ġ@ JsonProperty (" next ") Ġval Ġnext : ĠPath ?) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Kotlin Module () ĊĊĠĠĠĠĠĠĠ Ġfun Ġserialize ( path : ĠPath ) Ġ= Ġmapper . writeValue AsString ( path ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġdeserialize ( path : ĠString ): ĠPath Ġ= Ġmapper . readValue ( path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( other ?. java Class Ġ!= Ġjava Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠPath ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this . type Ġ!= Ġother . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this . description Ġ!= Ġother . description ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this . next Ġ!= Ġother . next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ