parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Не получается изолировать поля/перменные, чтобы был доступ только через свойства объекта но не напрямую. Получается либо-либо.

AndySobb 07.11.2014 18:21

Сабж.

Задача: изолировать внутренние поля/переменные класса, и отдавать что хочу только через свойства или методы в result'e

Получается пока только что-то одно: либо я подхватываю в свойстве внутреннюю переменную и работаю с ней и она шарится наружу. Либо изолируется как наружу, так и между методом и свойством внутри класса.

Пример: я создаю объект класса myclass и отдаю конструктору hash-объект. Я хочу получить нечто, что является частью hash-объекта через запрос несуществуюего поля и дальнейшую обработку и выдачу.
@CLASS
myclass

@OPTIONS
locals

@create[input_obj]
$self.internal_obj[$input_obj]

@GET_DEFAULT[fieldname]
$result[$self.internal_obj.$fieldname]

@main[]
$myhash[
         $.alice[0]
         $.bob[1]
       ]

$myobj[^myclass::create[$myhash]]

# Вернет TEST=1, отрабатывается через свойство
TEST=$myobj.bob
# Вернет TEST=1, по прямому обращению к полю объекта, а как мне его изолировать? 
TEST=$myobj.internal_obj.bob