parser

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

 

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

Есть ли какая-то, "особая уличная магия", как можно сделать каскадный "AUTO_EXEC_GET_DEFAULT" при обращении к суб-полю/суб-объекту?

Andrey 26.11.2014 02:04

Сабж.
Скорее всего, по той же причине (односторонее разыменовывание указателя) - подхватить "родительским" объектом факт обращения к дочернему я наверное не могу физически, но(!) может есть какой-то трюк или "особая уличная магия"?

Допустим, я хочу чтобы при обращении к суб-объекту/суб-полю вызывать какой-то автоматический метод (если он определен)
и тут же вызывать его в над-объектах (при том объекты могут быть как и того же класса, так и др.классов)

Гипотетический пример:
@CLASS
Core

@create[]
$_id[^reflection:uid[$self]]

@GET_AUTO[]
^MAIN:i.inc[]

#----

@main[]

$i(0)

$Session[^Core::create[]]
$User[^Core::create[] $.Session[$Session]
$Model[^Core::create[] $.User[$User]]

$i
#i=0

$Model._id - $i
# Результат: 0x30000 - 1

$Model.User._id - $i
# Вызовется в сл.порядке: ^User.GET_AUTO, ^Model.GET_AUTO
# Результат: 0x20000 - 3

$Model.User.Session._id - $i
# Вызовется в сл.порядке: ^Session.GET_AUTO, ^User.GET_AUTO, ^Model.GET_AUTO
# Результат: 0x10000 - 6