Class KbextSettings
KbextSetupKeys.
Первое поведение класса: у незарегистрированного или выключенного плагина
getPlugin() даёт null, и читать нечего, поэтому отдаются дефолты.
Сам класс ничего не кэширует: значение спрашивается у плагина на каждый
вызов. Но Preferences держит сам BGPluginServer, и он
обновляется только когда конфигурацию сохраняют через сервер (админка
плагинов, программный вызов) — тогда следующий запрос видит новое значение
без перезапуска. Правка таблицы plugin_config напрямую в обход
сервера не видна до перезапуска, поэтому проверка «а вдруг значение
поменялось» выполняется на живом сервере, а не по строке в базе.
Откуда берётся плагин, решает поле pluginSource: в сервере это
менеджер плагинов. Подмена нужна в юнит-тестах: BGPluginManagerServer
при первом обращении требует окружение ядра, которого в тестах нет, а
проверять надо обе ветки — «плагина нет» и «плагин есть, значения из
конфигурации».
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intuid плагина, когда плагин не зарегистрирован. -
Method Summary
Modifier and TypeMethodDescriptionstatic booleangetBoolean(KbextSetupKeys key) Значение настройки как признак; нераспознанная строка — false.static intgetInt(KbextSetupKeys key) Значение настройки как целое; нераспознанная строка — 0.static longgetLong(KbextSetupKeys key) Значение настройки как длинное целое; нераспознанная строка — 0.static intИдентификатор установленного модуля плагина — тот самый uid изinstalled_modules.static StringgetString(KbextSetupKeys key) Значение настройки текстом; null, если нет ни значения, ни дефолта.Значение настройки как список строк через запятую — так задаётсяkbext.webui.allowed.roles.static booleanВключена ли синхронизация/авторинг плагина общей настройкойkbext.sync.enabled.static booleanЗарегистрирован ли плагин в менеджере плагинов.
-
Field Details
-
NO_PLUGIN_UID
public static final int NO_PLUGIN_UIDuid плагина, когда плагин не зарегистрирован.- See Also:
-
-
Method Details
-
isPluginRegistered
public static boolean isPluginRegistered()Зарегистрирован ли плагин в менеджере плагинов. -
getPluginUid
public static int getPluginUid()Идентификатор установленного модуля плагина — тот самый uid изinstalled_modules. Ноль здесь означал бы чужие данные, поэтому при незарегистрированном плагине отдаётсяNO_PLUGIN_UID. -
isEnabled
public static boolean isEnabled()Включена ли синхронизация/авторинг плагина общей настройкойkbext.sync.enabled. -
getString
Значение настройки текстом; null, если нет ни значения, ни дефолта.- Parameters:
key- настройка; null не допускается и даёт null
-
getBoolean
Значение настройки как признак; нераспознанная строка — false. -
getInt
Значение настройки как целое; нераспознанная строка — 0. -
getLong
Значение настройки как длинное целое; нераспознанная строка — 0. -
getStringList
Значение настройки как список строк через запятую — так задаётсяkbext.webui.allowed.roles. Пустые элементы пропускаются, а настроек нет вовсе — возвращается пустой список, а не null.
-