Для подобных вещей мне нравится использовать классы% Projection. Вы можете посмотреть документацию о том, как это сделать, но основная идея заключается в том, что когда вы компилируете один класс, он может быть настроен для генерации другого.
Если вы хотите расширить то, что дает вам Intersystem, такими вещами, как знание того, в каком методе вы находитесь (сам Intersystem просто обманывает и изменяет компилятор классов, не создавая общий метод, который может использовать каждый), вы можете сделать что-то вроде взлома, например, иметь параметр класса #CurrentMethod и настройка класса проекции для его замены фактическим именем метода при сохранении.
Это очень сложно настроить, но как только вы это сделаете, вы сможете по мере необходимости добавлять дополнительные функции мета-класса. Я делаю это для тех же целей, о которых вы упоминали, и для генерации строго типизированных объектов результирующего набора с помощью некоторых удобных методов.
Вы также можете сделать то же самое в коде, вызываемом из надстройки Cache Studio. В зависимости от того, как вы пишете свою надстройку, вы можете, например, запустить свой код из пункта меню.