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