package Ġcom . ll amal ad 7 . pseudo . runtime . scope Ċ Ċ import Ġcom . ll amal ad 7 . pseudo . runtime . ab straction . Base Object Ċ import Ġcom . ll amal ad 7 . pseudo . utils . Error Utils Ċ Ċ object ĠTop Level Scope : ĠScope () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġvalues Ġ= Ġmutable Map Of < String , ĠBase Object >() ĊĊĠĠĠ Ġoverride Ġval Ġparent Ġ= ĠGlobal Scope ĊĊĠĠĠ Ġoverride Ġfun Ġget OrNull ( name : ĠString , Ġaccessor : ĠClass < *> ?): ĠBase Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvalues [ name ] Ġ?: Ġparent . get OrNull ( name , Ġaccessor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ( name : ĠString , Ġaccessor : ĠClass < *> ?): ĠBase Object Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget OrNull ( name , Ġaccessor ) Ġ?: ĠError Utils . no Accessible Object ( name , Ġaccessor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsa ft Set ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġvalue : ĠBase Object , ĊĠĠĠĠĠĠĠ Ġaccessor : ĠClass < *> ? ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues [ name ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġvalue : ĠBase Object , ĊĠĠĠĠĠĠĠ Ġaccessor : ĠClass < *> ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! sa ft Set ( name , Ġvalue , Ġaccessor )) ĠError Utils . no Write ableObject ( name , Ġaccessor ) ĊĠĠĠ Ġ} Ċ }