Есть ли какая-то, "особая уличная магия", как можно сделать каскадный "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
- Есть ли какая-то, "особая уличная магия", как можно сделать каскадный "AUTO_EXEC_GET_DEFAULT" при обращении к суб-полю/суб-объекту?, Andrey 26.11.2014 02:04