package Ġsp azz yle mon s . ex trap layer models . model . json Ċ Ċ import Ġcom . google . gson . JsonObject Ċ import Ġcom . google . gson . Json ParseException Ċ import Ġsp azz yle mon s . ex trap layer models . model . Model Loader Ċ Ċ /** Ċ Ġ* ĠDeserialize Ġa Ġrequired Ġproperty . ĠIf Ġthe Ġproperty Ġis Ġnot Ġfound , Ġa Ġ[ Json ParseException ] Ġis Ġthrown . Ċ Ġ* Ċ Ġ* Ġ@ param Ġname ĠThe Ġname Ġof Ġthe Ġproperty . Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠJsonObject . required Property ( name : ĠString ): ĠT Ġ{ ĊĠĠĠ Ġval Ġproperty Ġ= Ġthis [ name ] Ġ?: Ġthrow ĠJson ParseException (" Property Ġ'$ name ' Ġis Ġrequired ") ĊĠĠĠ Ġreturn ĠModel Loader . gson . fromJson ( property , ĠT :: class . java ) Ċ } ĊĊ Ċ /** Ċ Ġ* ĠDeserialize Ġan Ġoptional Ġproperty . ĠIf Ġthe Ġproperty Ġis Ġnot Ġfound , Ġa Ġsensible Ġalternative Ġis Ġused . Ċ Ġ* Ċ Ġ* Ġ@ param Ġname ĠThe Ġname Ġof Ġthe Ġproperty . Ċ Ġ* Ġ@ param Ġalternate ĠThe Ġalternative Ġobject . Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠJsonObject . optional Property ( name : ĠString , Ġalternate : ĠT ): ĠT Ġ{ ĊĠĠĠ Ġval Ġproperty Ġ= Ġthis [ name ] Ġ?: Ġreturn Ġalternate ĊĠĠĠ Ġreturn ĠModel Loader . gson . fromJson ( property , ĠT :: class . java ) Ċ }