package Ġio . api . blo xy . util Ċ Ċ import Ġcom . be ust . kl ax on . Converter Ċ import Ġcom . be ust . kl ax on . JsonValue Ċ import Ġio . api . blo xy . model . dto . dex . Args Ċ import Ġjava . math . BigDecimal ĊĊ Ċ /** Ċ Ġ* ĠK l ax on ĠJSON Ġparser Ġextensions Ċ Ġ* Ċ Ġ* Ġ@ author ĠGood for God Ċ Ġ* Ġ@ since Ġ 2 2 . 1 1 . 2 0 1 8 Ċ Ġ*/ Ċ //@ Target ( Annotation Target . FIELD ) Ċ // internal Ġannotation Ġclass ĠK l ax on BigDecimal Ċ Ċ @ Target ( Annotation Target . FIELD ) Ċ internal Ġannotation Ġclass ĠK l ax on Args Ċ Ċ @ Target ( Annotation Target . FIELD ) Ċ internal Ġannotation Ġclass ĠK l ax on Str Ċ Ċ @ Target ( Annotation Target . FIELD ) Ċ internal Ġannotation Ġclass ĠK l ax on Double Ċ Ċ @ Target ( Annotation Target . FIELD ) Ċ internal Ġannotation Ġclass ĠK l ax on Decimal Ċ Ċ internal Ġclass ĠK l ax on Converters Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġargs Converter Ġ= Ġobject Ġ: ĠConverter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Convert ( cls : ĠClass <* >) Ġ= Ġcls Ġ== ĠArgs :: class . java ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoJson ( value : ĠAny ): ĠString Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Json ( jv : ĠJson Value ): ĠArgs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArgs ( jv . obj ?. map Ġ?: Ġempty Map ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArgs ( empty Map ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġdecimal Converter Ġ= Ġobject Ġ: ĠConverter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Convert ( cls : ĠClass <* >) Ġ= Ġcls Ġ== ĠBigDecimal :: class . java ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoJson ( value : ĠAny ): ĠString Ġ= Ġvalue . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Json ( jv : ĠJson Value ): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj v . big Decimal Ġ!= Ġnull Ġ-> Ġj v . big Decimal !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj v . double Ġ!= Ġnull Ġ-> ĠBigDecimal . valueOf ( jv . double !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġnon Null Str Converter Ġ= Ġobject Ġ: ĠConverter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Convert ( cls : ĠClass <* >) Ġ= Ġcls Ġ== ĠString :: class . java ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoJson ( value : ĠAny ): ĠString Ġ= Ġvalue . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Json ( jv : ĠJson Value ): ĠString Ġ= Ġj v . string Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġnon Null Double Converter Ġ= Ġobject Ġ: ĠConverter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Convert ( cls : ĠClass <* >) Ġ= Ġcls Ġ== ĠDouble :: class . java ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoJson ( value : ĠAny ): ĠString Ġ= Ġvalue . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom Json ( jv : ĠJson Value ): ĠDouble Ġ= Ġj v . double Ġ?: Ġ. 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }