package Ġcom . zen ika . quiz . infrastructure Ċ Ċ import Ġcom . fasterxml . jackson . core . type . Type Reference Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġcom . zen ika . quiz . domain . Quiz Ċ import Ġcom . zen ika . quiz . domain . Quiz Repository Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . core . io . Resource Ċ import Ġorg . springframework . stereotype . Repository Ċ Ċ @ Repository Ċ class ĠQu iz Repository Json File (@ Value (" classpath : qu izz es / qu izz es . json ") Ġqu izz es File : ĠResource ) Ġ: ĠQu iz Repository Ġ{ ĊĊĊĠĠĠ Ġprivate Ġval Ġqu izz es ById : ĠMap < String , ĠQu iz > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġqu izz es File . inputStream ĊĠĠĠĠĠĠĠ Ġval ĠobjectMapper Ġ= Ġj ack son ObjectMapper () ĊĠĠĠĠĠĠĠ Ġval Ġqu izz es Ġ= ĠobjectMapper . readValue < List < Quiz >>( file , Ġobject Ġ: ĠType Reference < List < Quiz >>() Ġ{}) ĊĠĠĠĠĠĠĠ Ġqu izz es ById Ġ= Ġqu izz es . map Ġ{ Ġit . id Ġto Ġit Ġ}. toMap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ( id : ĠString ): ĠQu iz Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! qu izz es ById . containsKey ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unknown Ġquiz Ġid ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġqu izz es ById . getValue ( id ) ĊĠĠĠ Ġ} Ċ } Ċ