package Ġnet . sub ro h 0 5 0 8 . oton ashi . triples . vocabulary Ċ Ċ import Ġnet . sub ro h 0 5 0 8 . oton ashi . triples . I ri Ċ import Ġkotlin . reflect . K Property Ċ Ċ abstract Ġclass ĠI ri Vocab ulary ( ĊĠĠĠ Ġprivate Ġval Ġprefix : ĠString , ĊĠĠĠ Ġprotected Ġval Ġi ri Store : ĠMutable Map < String , ĠI ri > Ġ= Ġmutable Map Of () Ċ ) Ġ{ ĊĠĠĠ Ġconstructor ( prefix : ĠString , Ġvar arg Ġname : ĠString ) Ġ: Ġthis ( prefix , Ġname . map Ġ{ Ġn Ġ-> ĊĠĠĠĠĠĠĠ Ġn . de capitalize () Ġto ĠI ri ("$ prefix :$ n ") ĊĠĠĠ Ġ}. toMap (). to Mutable Map ()) ĊĊĠĠĠ Ġoperator Ġfun ĠgetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property < *> ): ĠI ri ĊĠĠĠĠĠĠĠ Ġ= Ġi ri Store [ property . name ] Ġ?: ĠI ri ("$ prefix :${ property . name }") ĊĊĠĠĠ Ġoperator Ġfun Ġget ( iri : ĠString ): ĠI ri Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġi ri . de capitalize () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġi ri Store [ key ] Ġ?: ĠI ri ("$ prefix :$ key "). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ri Store [ key ] Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }