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