Skip to content

Публичный интерфейс библиотеки extends

Аннотации

Классы


АннотацияИнтерфейс

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

bsl
// Аннотация для указания, что класс является интерфейсом.
// Используется для семантического обозначения интерфейсов.
//
// Интерфейс представляет собой класс с процедурами и функциями,
// которые должны быть реализованы в классах, использующих этот интерфейс.
//
// Интерфейс может расширять другие интерфейсы через аннотацию &Расширяет,
// что означает наследование интерфейсов.
//
Процедура ПриСозданииОбъекта()

АннотацияРасширяет

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

bsl
// Аннотация для указания, что промаркированный класс расширяет/наследует другой тип.
// Используется при связывании объекта-наследника и объекта-родителя с помощью ПостроительНаследника.
//
// Параметры:
//  Значение - Строка - Имя типа, который расширяет промаркированный класс.
//
Процедура ПриСозданииОбъекта(Значение)

ИмяТипаРодителя

bsl
// Имя типа, который расширяет промаркированный класс.
//
// Возвращаемое значение:
//  Строка
//
Функция ИмяТипаРодителя() Экспорт

АннотацияРеализует

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

bsl
// Аннотация для указания, что класс должен реализовать указанный интерфейс.
// Используется для проверки наличия методов интерфейса в классе через ВалидаторАннотаций.
//
// Интерфейс представляет собой класс с процедурами и функциями.
//
// Параметры:
//  Значение - Строка - Имя интерфейса
//
Процедура ПриСозданииОбъекта(Значение)

ИмяИнтерфейса

bsl
// Имя интерфейса, который реализует промаркированный класс.
//
// Возвращаемое значение:
//  Строка
//
Функция ИмяИнтерфейса() Экспорт

АннотацияРодитель

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

bsl
// Маркерная аннотация, показывающая, что в данное поле внедряется ссылка на объект, от которого наследуется
// текущий объект.
//
// Применяется только на поле класса.
//
Процедура ПриСозданииОбъекта()

ВалидаторРеализации

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

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

ИнтерфейсыРеализованыКорректно

bsl
// Проверить, что объект реализует все интерфейсы, указанные в аннотации &Реализует.
// Если объект не реализует какой-либо из интерфейсов, будет вызвано исключение.
//
// Параметры:
// ПроверяемыйОбъект - Сценарий, Тип - объект, реализующий интерфейсы.
//
Процедура ИнтерфейсыРеализованыКорректно(ПроверяемыйОбъект) Экспорт

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

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

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

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

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

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

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

Построить

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

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

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