Skip to content

ОтелСвойстваКонфигурации ​

Свойства компонента из файла конфигурации (ConfigProperties).

Описание ​

Узел-соответствие YAML, который фабрика передаёт провайдеру компонента в СоздатьКомпонент(Свойства) (см. ОтелКонфигурационнаяФабрика.ЗарегистрироватьПровайдерКомпонента). Соответствует ConfigProperties спецификации Configuration API: даёт доступ ко всем свойствам узла — скалярам, вложенным соответствиям, последовательностям скаляров и соответствий, а также к списку ключей.

Каждое значение читается типизированным геттером:

  • свойства нет — геттер возвращает значение по умолчанию (параметр ПоУмолчанию, если не задан — Неопределено);
  • свойство задано со значением null (timeout: без значения) — геттер возвращает Null: null и отсутствие свойства — разные случаи (nullBehavior и defaultBehavior схемы компонента);
  • значение не того типа — исключение Свойство "<имя>": ожидается <тип>. Спецификация Configuration SDK требует, чтобы Create Component при несовпадении типа возвращал ошибку, и геттер даёт её сразу: фабрика передаёт исключение из Создать.

Содержит и ЭтоNull проверяют, задано ли свойство и равно ли оно null. Вложенное соответствие читается как ОтелСвойстваКонфигурации.

Узел хранится в неизменяемых коллекциях collectionos: соответствия — ФиксированнаяКарта, последовательности — ФиксированныйСписок, null — Null. Узел копируется при создании, поэтому изменения исходного соответствия свойства не меняют. Массивы, которые возвращают методы, — новые массивы.

Конструктор ​

bsl
Новый ОтелСвойстваКонфигурации(ДанныеУзла)
ПараметрТипПо умолчаниюОписание
ДанныеУзлаСоответствие, ФиксированноеСоответствие, Неопределено—Свойства компонента из файла; Неопределено в значении свойства — null; Неопределено вместо узла — компонент без свойств (my_exporter:)

Фабрика создаёт объект сама; создавать его нужно, например, в тестах провайдера компонента.

Методы ​

МетодЗначение свойстваВозвращает
ПолучитьСтроку(Имя, ПоУмолчанию = Неопределено)строкаСтрока
ПолучитьБулево(Имя, ПоУмолчанию = Неопределено)true или falseБулево
ПолучитьЦелое(Имя, ПоУмолчанию = Неопределено)целое числоЧисло
ПолучитьЧисло(Имя, ПоУмолчанию = Неопределено)число, целое или дробноеЧисло
ПолучитьСвойства(Имя, ПоУмолчанию = Неопределено)соответствиеОтелСвойстваКонфигурации
ПолучитьМассивСтрок(Имя, ПоУмолчанию = Неопределено)последовательность строкМассив из Строка
ПолучитьМассивБулево(Имя, ПоУмолчанию = Неопределено)последовательность булевых значенийМассив из Булево
ПолучитьМассивЦелых(Имя, ПоУмолчанию = Неопределено)последовательность целых чиселМассив из Число
ПолучитьМассивЧисел(Имя, ПоУмолчанию = Неопределено)последовательность чиселМассив из Число
ПолучитьМассивСвойств(Имя, ПоУмолчанию = Неопределено)последовательность соответствийМассив из ОтелСвойстваКонфигурации
Ключи()—Массив из Строка — имена всех заданных свойств, в том числе со значением null
Содержит(Имя)—Булево — свойство задано, в том числе со значением null
ЭтоNull(Имя)—Булево — свойство задано со значением null

Каждый геттер возвращает значение свойства, Null для свойства со значением null или ПоУмолчанию, если свойства нет. Значение не того типа и последовательность с элементом другого типа дают исключение с именем свойства и ожидаемым типом.

Пример ​

yaml
exporter:
  my_exporter:
    endpoint: http://collector:9000
    timeout: 5000
    tags: [a, b]
    tls:
      insecure: true
bsl
Функция СоздатьКомпонент(Свойства) Экспорт
    Адрес = Свойства.ПолучитьСтроку("endpoint");                 // "http://collector:9000"
    Таймаут = Свойства.ПолучитьЦелое("timeout", 10000);           // 5000
    Метки = Свойства.ПолучитьМассивСтрок("tags", Новый Массив);   // ["a", "b"]
    // tls нет - без TLS; tls: (null) - TLS с настройками по умолчанию; tls со свойствами - по ним
    Tls = Свойства.ПолучитьСвойства("tls");
    Если Tls = Null Тогда
        Tls = Новый ОтелСвойстваКонфигурации(Неопределено);
    КонецЕсли;
    БезTls = Tls = Неопределено Или Tls.ПолучитьБулево("insecure", Ложь);
    // Свойства.ПолучитьЦелое("endpoint") - исключение: Свойство "endpoint": ожидается целое число
    // ...
КонецФункции

См. также ​