package Ġcom . air wal lex . android . core . model . parser Ċ Ċ import Ġcom . air wal lex . android . core . model . Next Action Ċ import Ġcom . air wal lex . android . core . util . Air wal lex Json Utils Ċ import Ġorg . json . JSONObject Ċ import Ġjava . math . BigDecimal Ċ Ċ class ĠNext Action Parser Ġ: ĠModel Json Parser < Next Action > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġparse ( json : ĠJSONObject ): ĠNext Action ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNext Action ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠNext Action . Next ActionType . from Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠAir wal lex Json Utils . opt Map ( json , ĠFIELD _ DATA ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Ġ= Ġjson . opt JSONObject ( FIELD _ D CC _ DATA )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Data Parser (). parse ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ URL ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ METHOD ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ TYPE Ġ= Ġ" type " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ DATA Ġ= Ġ" data " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ D CC _ DATA Ġ= Ġ" dcc _ data " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ URL Ġ= Ġ" url " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ METHOD Ġ= Ġ" method " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠD cc Data Parser Ġ: ĠModel Json Parser < Next Action . D cc Data > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġparse ( json : ĠJSONObject ): ĠNext Action . D cc Data ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNext Action . D cc Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ CUR RE NCY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= ĠAir wal lex Json Utils . opt Double ( json , ĠFIELD _ AMOUNT )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBigDecimal . valueOf ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Pair Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ CUR RE NCY _ PAIR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Rate Ġ= ĠAir wal lex Json Utils . opt Double ( json , ĠFIELD _ CLIENT _ RATE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrate Source Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ RATE _ SOURCE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrate Timestamp Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ RATE _ TIMESTAMP ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrate Expiry Ġ= ĠAir wal lex Json Utils . opt String ( json , ĠFIELD _ RATE _ EXPI RY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ CUR RE NCY Ġ= Ġ" currency " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ AMOUNT Ġ= Ġ" amount " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ CUR RE NCY _ PAIR Ġ= Ġ" currency _ pair " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ CLIENT _ RATE Ġ= Ġ" client _ rate " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ RATE _ SOURCE Ġ= Ġ" rate _ source " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ RATE _ TIMESTAMP Ġ= Ġ" rate _ timestamp " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ RATE _ EXPI RY Ġ= Ġ" rate _ expiry " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ