Skip to content

ПостроительНаследника

ПриСозданииОбъекта

bsl
// Класс, выполняющий связывание объекта-наследника с объектом-родителем и создающий класс-обертку (декоратор)
// с общим интерфейсом.
//
// Параметры:
//  ОбъектНаследник - Сценарий - объект-наследник. Должен содержать аннотацию &Расширяет.
//  ОбъектРодитель - Сценарий - объект-родитель.
//  МетодыНаследника - ТаблицаЗначений - методы объекта-наследника, как они возвращаются рефлектором.
//                                       Может использоваться для сокращения использования рефлектора или
//                                       необходимости дополнительной обработки методов, например, разворачивания
//                                       аннотаций библиотекой annotations.
//  КонструкторНаследника - СтрокаТаблицыЗначений - данные о конструкторе объекта-наследника,
//                                                  как они возвращаются рефлектором.
Процедура ПриСозданииОбъекта(ОбъектНаследник, ОбъектРодитель, МетодыНаследника = Неопределено, КонструкторНаследника = Неопределено)

СоздатьДекоратор

bsl
// Выполняет связывание объекта-наследника с объектом-родителем и возвращает ПостроительДекоратора,
// который содержит методы и поля объекта-наследника и методы объекта-родителя.
//
// Поле объекта-наследника, помеченное аннотаций &Родитель, будет заполнено объектом-родителем.
// Если аннотация не найдена, будет для хранения родителя будет создано поле с именем "_ОбъектРодитель".
//
// Объект-наследник может содержать методы, совпадающие по именам с методами объекта-родителя. При необходимости
// метод объекта-наследника может вызывать метод объекта-родителя через поле-родитель.
// 
// Объект-наследник должен иметь аннотацию &Расширяет, в которой указано имя типа объекта-родителя.
//
// Возвращаемое значение:
//  ПостроительДекоратора - полностью сконфигурированный построитель декоратора, из которого можно получить
//                          итоговый класс-наследник.
//
Функция СоздатьДекоратор() Экспорт

ИмяПоляОбъектРодитель

bsl
// Получить имя поля, в котором хранится объект-родитель.
// Возвращается имя поля, помеченное аннотацией &Родитель, или "_ОбъектРодитель", если аннотация не найдена.
//
// Возвращаемое значение:
//   Строка
//
Функция ИмяПоляОбъектРодитель() Экспорт

Построить

bsl
// Выполнить связывание объекта-наследника с объектом-родителем и вернуть результирующий класс
// с общим интерфейсом.
// См. СоздатьДекоратор()
//
// Возвращаемое значение:
//  Сценарий - класс-наследник с общим интерфейсом
//
Функция Построить() Экспорт

УстановитьКонтейнерАннотаций

bsl
// Сеттер для контейнера аннотаций.
// Позволяет использовать общий контейнер аннотаций для всего приложения.
//
// Параметры:
//  КонтейнерАннотаций - КонтейнерАннотаций - устанавливаемый контейнер аннотаций.
//
Процедура УстановитьКонтейнерАннотаций(КонтейнерАннотаций) Экспорт