/* Ċ Ġ* ĠModule : Ġr 2 - shared - kotlin Ċ Ġ* ĠDevelopers : ĠA fer d ita ĠM uri qi , ĠCl Ã©ment ĠBa um ann Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 . ĠRead ium ĠFoundation . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġa ĠBSD - style Ġlicense Ġwhich Ġis Ġdetailed Ġin Ġthe Ċ Ġ* ĠLICENSE Ġfile Ġpresent Ġin Ġthe Ġproject Ġrepository Ġwhere Ġthis Ġsource Ġcode Ġis Ġmaintained . Ċ Ġ*/ Ċ Ċ package Ġorg . read ium . r 2 . shared Ċ Ċ import Ġorg . json . JSONObject Ċ Ċ data Ġclass ĠCollection ( var Ġname : ĠString ) Ġ{ ĊĠĠĠ Ġvar Ġsort As : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġidentifier : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġposition : ĠDouble ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġlinks : ĠMutable List < Link > Ġ= Ġmutable ListOf () Ċ Ċ } Ċ Ċ enum Ġclass ĠCollection Error ( val Ġv : ĠString ) Ġ{ ĊĠĠĠ ĠInvalid Collection (" Invalid Ġcollection ") Ċ } Ċ Ċ fun Ġparse Collection ( collection Dict : ĠJSONObject ): ĠCollection Ġ{ ĊĠĠĠ Ġval Ġname Ġ= Ġcollection Dict [" name "] Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException ( Collection Error . Invalid Collection . name ) ĊĠĠĠ Ġval Ġc Ġ= ĠCollection ( name Ġ= Ġname ) ĊĊĠĠĠ Ġif Ġ( collection Dict . has (" sort _ as ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġc . sort As Ġ= Ġcollection Dict . getString (" sort _ as ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( collection Dict . has (" identifier ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġc . identifier Ġ= Ġcollection Dict . getString (" identifier ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( collection Dict . has (" position ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġc . position Ġ= Ġcollection Dict . getDouble (" position ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( collection Dict . has (" links ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlinks Ġ= Ġcollection Dict . get JSONArray (" links ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException ( Collection Error . Invalid Collection . name ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. ( links . length () Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġlinks . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . links . add ( parse Link ( link )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġc Ċ } Ċ