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