3.1. Конфигурации

Очень большое количество редко меняющихся настроек поведения системы вынесено в конфигурации. Конфигурация - это текстовый блок, состоящих из записей вида: <ключ>=<значение>. На одной строке может быть только одна такая запись, символ # в начале строки означает комментарий.

Конфигурации вводятся либо в текстовых .properties - файлах (опции подключения к БД, базовые настройки), либо в редакторах конфигурации, сохраняясь в базе данных.

3.1.1. Переменные

В значениях параметров конфигурации возможна подстановка ранее указанных значений с помощью подстановок {@имя параметра}. Рассмотрим пример подстановки.

# определение значения
howYou=how you
# использование подстановки
some.kind.of.config.record=Thats {@howYou} should use macro!

Т.е. при такой конфигурации при взятии значения some.kind.of.config.record получаем в результате строку "Thats how you should use macro!". Подставляемое значение должно быть обязательно определено ранее подстановки.

3.1.2. Счётчики

После разбора конфигурация используется системой как набор пар ключ - значение, в котором порядок не определён. При необходимости указания порядка в ключе вводятся дополнительные числовые индексы.

Например:

object.1.id=1
object.1.title=Title1
object.2.id=2
object.2.title=Title2

При большом количестве подобных записей ведение индекса может быть затруднительным, особенно при необходимости изменения номеров записей. В этом случе индекс можно вынести в отдельную переменную, увеличивая его с помощью макроса inc. Далее приведена идентичная конфигурация, индексы в которой выведены в переменную.

index=1
object.{@index}.id=1
object.{@index}.title=Title1
object.{@inc:index}.id=2
object.{@index}.title=Title2

3.1.3. Склеивание значений

Помимо присвоения параметр конфигурации можно приклеивать к уже существующему под таким ключём значению. Для этого используется оператор +=. Например:

key=1
key+=,2
key+=,3

В этом случе под ключом key будет храниться строка "1,2,3".

Склеивание помогает разбить длинную строку конфигурации на несколько более читаемых. Например:

# дата рожд., с.-н. пасп., д.в. пасп., кем выд. пасп, адрес проп., тел. гор, тел. сот, адрес(а) усл., перс. данные
bgbilling:creator.importParameters=73,74,75,76,77,78,14,12,115
# ИНН, КПП, ФИО руководителя, полное название, должность рук.-ля, E-Mail(ы)
bgbilling:creator.importParameters+=,248,249, 252, 428, 429, 15

Также оно полезно при объединении нескольких конфигураций, позволяя создать общую объединённую переменную.