package Ġcom . twitter . me il _ mit u . twitter 4 hk Ċ Ċ import Ġjava . util .* Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ class ĠParam < R , ĠT , ĠV >( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmap : ĠHashMap < String , ĠV >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġkey : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconverter : Ġ( T ) Ġ-> ĠV , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġde converter : Ġ( V ) Ġ-> ĠT ) Ġ: ĠRead Write Property < R , ĠT ?> Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠR , Ġproperty : ĠK Property <* >, Ġvalue : ĠT ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( map . containsKey ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap . remove ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put ( key , Ġconverter ( value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠR , Ġproperty : ĠK Property < *> ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( map . containsKey ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġde converter ( map [ key ] !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }