package Ġcom . j ere k sel . lib res ub str atum Ċ Ċ import Ġkotlin . reflect . K Property Ċ Ċ class ĠReset table Lazy < V >( val Ġinitializer : Ġ() Ġ-> ĠV ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlock Ġ= ĠObject () ĊĠĠĠ Ġ@ Volatile Ġprivate Ġvar Ġvalue : ĠV ? Ġ= Ġnull ĊĊĠĠĠ Ġoperator Ġfun ĠgetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property < *> ): ĠV Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġinitializer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠsetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property <* >, Ġvalue : ĠV ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }