package Ġpt . h dn . contract . schemas Ċ Ċ import Ġcom . google . gson . JsonObject Ċ import Ġcom . google . gson . annotations . Expose Ċ import Ġkotlinx . parcel ize . Ignored On Parcel Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ import Ġpt . h dn . contract . annotations . Err Ċ import Ġpt . h dn . contract . annotations . Parameter . Companion . FIX Ċ import Ġpt . h dn . contract . annotations . Schema Type Ċ import Ġpt . h dn . contract . annotations . Source Type Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . BigDecimal . ZERO Ċ Ċ @ Parcel ize Ċ data Ġclass ĠFix Schema ( ĊĠĠĠ Ġ@ Expose Ġvar Ġfix : ĠBigDecimal ? Ġ= Ġnull Ċ ) Ġ: ĠSchema Ġ{ ĊĊĠĠĠ Ġ// region Ġvars ĊĠĠĠ Ġ@ Ignored On Parcel Ġ@ Expose Ġ@ Source Type Ġoverride Ġvar Ġsource : ĠInt ? Ġ= ĠSource Type . NONE ĊĠĠĠ Ġ@ Ignored On Parcel Ġ@ Expose Ġ@ Schema Type Ġoverride Ġval Ġid : ĠInt Ġ= ĠSchema Type . FIX ĊĠĠĠ Ġ// endregion Ġvars ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠDeserial izer < Fix Schema > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( json : ĠJsonObject ): ĠFix Schema Ġ= Ġwith ( json ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFix Schema ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfix Ġ= Ġthis [ FIX ]. as BigDecimal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġcalculate ( value : ĠBigDecimal ?): ĠBigDecimal Ġ= Ġfix !! ĊĊĠĠĠ Ġoverride Ġfun Ġclone (): ĠFix Schema Ġ= Ġcopy () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠFix Schema ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( fix Ġ!= Ġother . fix ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfix ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Err Ġoverride Ġfun Ġvalidate ( schema : ĠSchema ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema ?. let Ġ{ Ġit Ġ! is ĠFix Schema Ġ} Ġ== Ġtrue Ġ-> ĠErr . DIFF _ SCHEMA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema ?. let Ġ{ Ġthis Ġ== Ġit Ġ} Ġ== Ġtrue Ġ-> ĠErr . NO _ CHANGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfix ?. let Ġ{ Ġit Ġ== ĠZERO Ġ} Ġ!= Ġfalse Ġ-> ĠErr . FIX ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠErr . NONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }