package Ġcom . stripe . android . model . parsers Ċ Ċ import Ġcom . stripe . android . core . model . Stripe Json Utils Ċ import Ġcom . stripe . android . core . model . parsers . Model Json Parser Ċ import Ġcom . stripe . android . model . Source Order Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ internal Ġclass ĠSource Order Json Parser Ġ: ĠModel Json Parser < Source Order > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġitem Json Parser Ġ= ĠItem Json Parser () ĊĊĠĠĠ Ġoverride Ġfun Ġparse ( json : ĠJSONObject ): ĠSource Order Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitems Json Ġ= Ġjson . opt JSONArray ( FIELD _ ITEMS ) Ġ?: ĠJSONArray () ĊĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġ( 0 Ġuntil Ġitems Json . length ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġidx Ġ-> Ġitems Json . opt JSONObject ( idx ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Json Parser . parse ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠSource Order ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= ĠStripe Json Utils . opt Integer ( json , ĠFIELD _ AMOUNT ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ CUR RE NCY ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ EMAIL ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= Ġitems , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshipping Ġ= Ġjson . opt JSONObject ( FIELD _ SHIP PING )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSh ipping Json Parser (). parse ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠItem Json Parser Ġ: ĠModel Json Parser < Source Order . Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġparse ( json : ĠJSONObject ): ĠSource Order . Item ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSource Order . Item . Type . from Code ( Stripe Json Utils . opt String ( json , ĠFIELD _ TYPE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( type Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSource Order . Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= ĠStripe Json Utils . opt Integer ( json , ĠFIELD _ AMOUNT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ CUR RE NCY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ DESCRIPTION ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity Ġ= ĠStripe Json Utils . opt Integer ( json , ĠFIELD _ QU ANT ITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ TYPE Ġ= Ġ" type " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ AMOUNT Ġ= Ġ" amount " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ CUR RE NCY Ġ= Ġ" currency " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ DESCRIPTION Ġ= Ġ" description " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ QU ANT ITY Ġ= Ġ" quantity " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠSh ipping Json Parser Ġ: ĠModel Json Parser < Source Order . Shipping > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġparse ( json : ĠJSONObject ): ĠSource Order . Shipping Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSource Order . Shipping ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġjson . opt JSONObject ( FIELD _ ADDRESS )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress Json Parser (). parse ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcarrier Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ CAR RI ER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ NAME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphone Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ PHONE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtracking Number Ġ= ĠStripe Json Utils . opt String ( json , ĠFIELD _ TRACK ING _ NUMBER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ ADDRESS Ġ= Ġ" address " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ CAR RI ER Ġ= Ġ" carrier " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ NAME Ġ= Ġ" name " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ PHONE Ġ= Ġ" phone " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ TRACK ING _ NUMBER Ġ= Ġ" tracking _ number " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ AMOUNT Ġ= Ġ" amount " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ CUR RE NCY Ġ= Ġ" currency " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ EMAIL Ġ= Ġ" email " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ ITEMS Ġ= Ġ" items " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ SHIP PING Ġ= Ġ" shipping " ĊĠĠĠ Ġ} Ċ } Ċ