Spec-Zone.ru › OpenJDK 8

Класс Preferences

  • java.lang.Object
    • java.util.prefs.Preferences
Прямые известные подклассы:
AbstractPreferences

public abstract class Preferences
extends Object

Узел в иерархической коллекции данных настроек. Этот класс позволяет приложениям хранить и извлекать данные настроек и конфигурации пользователей и системы. Эти данные хранятся постоянно в базе данных, зависящей от реализации. Типичные реализации включают плоские файлы, регистры, специфичные для ОС, серверы каталогов и базы данных SQL. Пользователь этого класса не должен беспокоиться о деталях базы данных.

Существуют два отдельных дерева узлов настроек, одно для пользовательских настроек и одно для системных настроек. Каждый пользователь имеет отдельное дерево пользовательских настроек, а все пользователи в данной системе используют одно и то же дерево системных настроек. Точное определение «пользователя» и «системы» будет варьироваться в зависимости от реализации. Типичная информация, хранимая в дереве пользовательских настроек, может включать выбор шрифта, выбор цвета или предпочтительное расположение и размер окна для определённого приложения. Типичная информация, хранимая в дереве системных настроек, может включать данные конфигурации установки приложения.

Узлы в дереве настроек имеют имена, аналогичные именам каталогов в иерархической файловой системе. Каждый узел в дереве настроек имеет имя узла (которое необязательно уникально), уникальное полное имя пути и имя пути, относительное к каждому предку, включая его самого.

Узел корня имеет имя узла пустую строку (""). Каждый другой узел имеет произвольное имя узла, заданное во время его создания. Единственные ограничения на это имя заключаются в том, что оно не может быть пустой строкой и не может содержать символ косой черты ('/').

Узел корня имеет абсолютный путь "/". Узлы, являющиеся дочерними по отношению к корневому узлу, имеют абсолютные пути "/" + <имя узла>. Все остальные узлы имеют абсолютные пути <абсолютный путь родительского узла> + "/" + <имя узла>. Обратите внимание, что все абсолютные пути начинаются с символа косой черты.

Имя пути узла n, относительное к его предку a, — это просто строка, которую необходимо добавить к абсолютному имени пути a, чтобы получить абсолютный путь n, с удалением начального символа косой черты (если он присутствует). Обратите внимание на:

  • Относительные имена путей не начинаются с символа косой черты.
  • Имя пути каждого узла относительно самого себя — пустая строка.
  • Имя пути каждого узла относительно его родителя — его имя узла (за исключением корневого узла, у которого нет родительского узла).
  • Имя пути каждого узла относительно корня — это его абсолютный путь с удалённым начальным символом косой черты.

И наконец, обратите внимание на:

  • Имя пути не содержит нескольких последовательных символов косой черты.
  • Никакое имя пути, за исключением абсолютного имени пути корня, не оканчивается символом косой черты.
  • Любая строка, соответствующая этим двум правилам, является допустимым именем пути.

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

Нормальное завершение виртуальной машины Java не приведёт к потере ожидаемых обновлений — явное вызов flush не требуется при завершении для обеспечения того, что ожидаемые обновления будут сохранены.

Все методы, которые считывают настройки из объекта Preferences, требуют от вызывающей стороны указать значение по умолчанию. Значение по умолчанию возвращается, если значение не было ранее установлено или если база данных недоступна. Цель состоит в том, чтобы позволить приложениям работать, хотя и с немного ухудшенной функциональностью, даже если база данных станет недоступной. Несколько методов, таких как flush, имеют семантику, которая предотвращает их выполнение, если база данных недоступна. Обычным приложениям не нужно вызывать ни один из этих методов, что можно определить по тому, что они объявлены как выбрасывающие исключение BackingStoreException.

Методы этого класса могут вызываться одновременно несколькими потоками в одной JVM без необходимости внешней синхронизации, и результаты будут эквивалентны некоторому последовательному выполнению. Если этот класс используется одновременно множеством JVM, которые хранят свои данные настроек в одной и той же базе данных, база данных не будет повреждена, но никаких других гарантий относительно согласованности данных настроек не предоставляется.

Этот класс содержит механизм экспорта/импорта, позволяющий «экспортировать» настройки в документ XML и «импортировать» документы XML, представляющие настройки, обратно в систему. Этот механизм может использоваться для резервного копирования всего или части дерева настроек и последующего восстановления из резервной копии.

Документ XML имеет следующее объявление DOCTYPE:

<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
Обратите внимание, что к системному URI (http://java.sun.com/dtd/preferences.dtd) не обращаются при экспорте или импорте настроек; он просто служит строкой для уникальной идентификации DTD, который:
<?xml version="1.0" encoding="UTF-8"?>

    <!-- DTD for a Preferences tree. -->

    <!-- The preferences element is at the root of an XML document
         representing a Preferences tree. -->
    <!ELEMENT preferences (root)>

    <!-- The preferences element contains an optional version attribute,
          which specifies version of DTD. -->
    <!ATTLIST preferences EXTERNAL_XML_VERSION CDATA "0.0" >

    <!-- The root element has a map representing the root's preferences
         (if any), and one node for each child of the root (if any). -->
    <!ELEMENT root (map, node*) >

    <!-- Additionally, the root contains a type attribute, which
         specifies whether it's the system or user root. -->
    <!ATTLIST root
              type (system|user) #REQUIRED >

    <!-- Each node has a map representing its preferences (if any),
         and one node for each child (if any). -->
    <!ELEMENT node (map, node*) >

    <!-- Additionally, each node has a name attribute -->
    <!ATTLIST node
              name CDATA #REQUIRED >

    <!-- A map represents the preferences stored at a node (if any). -->
    <!ELEMENT map (entry*) >

    <!-- An entry represents a single preference, which is simply
          a key-value pair. -->
    <!ELEMENT entry EMPTY >
    <!ATTLIST entry
              key   CDATA #REQUIRED
              value CDATA #REQUIRED >
Каждая Preferences реализация должна иметь связанную реализацию PreferencesFactory. Каждая реализация Java(TM) SE должна обеспечивать какой-либо способ указания реализации PreferencesFactory для генерации корневых узлов настроек. Это позволяет администратору заменить стандартную реализацию настроек альтернативной реализацией.

Примечание для реализации: в JRE Sun's реализация PreferencesFactory расположена следующим образом:

  1. Если системная переменная java.util.prefs.PreferencesFactory определена, то она считается полным именем класса, реализующего интерфейс PreferencesFactory. Класс загружается и создаётся; если этот процесс завершится ошибкой, будет выброшено неопределённое исключение.

  2. Если файл класса реализации PreferencesFactory был установлен в файле jar, видимом для system class loader, и этот файл jar содержит файл конфигурации поставщика с именем java.util.prefs.PreferencesFactory в каталоге ресурсов META-INF/services, то первым именем класса, указанным в этом файле, будет использоваться. Если предоставлено более одного такого файла jar, будет использоваться первый найденный.

    Класс загружается и создаётся; если этот процесс завершится ошибкой, будет выброшено неопределённое исключение.
  3. Наконец, если ни указанная выше системная переменная, ни файл jar расширения не предоставлены, то загружается и создаётся системная по умолчанию PreferencesFactory реализация для базовой платформы.

С:
1.4

Поля

Модификатор и тип Поле и описание
static int MAX_KEY_LENGTH

Максимальная длина строки, разрешенной в качестве ключа (80 символов).

static int MAX_NAME_LENGTH

Максимальная длина имени узла (80 символов).

static int MAX_VALUE_LENGTH

Максимальная длина строки, разрешенной в качестве значения (8192 символа).

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

Модификатор Конструктор и описание
protected Preferences()

Единственный конструктор.

Методы

Модификатор и тип Метод и описание
abstract String absolutePath()

Возвращает абсолютный путь к этому узлу предпочтений.

abstract void addNodeChangeListener(NodeChangeListener ncl)

Регистрирует указанный слушатель для получения событий изменения узла для этого узла.

abstract void addPreferenceChangeListener(PreferenceChangeListener pcl)

Регистрирует указанный слушатель для получения событий изменения предпочтений для этого узла предпочтений.

abstract String[] childrenNames()

Возвращает имена дочерних узлов этого узла предпочтений, относительно этого узла.

abstract void clear()

Удаляет все предпочтения (ассоциации ключ-значение) в этом узле предпочтений.

abstract void exportNode(OutputStream os)

Выводит в указанный выходной поток XML-документ, представляющий все предпочтения, содержащиеся в этом узле (но не в его потомках).

abstract void exportSubtree(OutputStream os)

Выводит XML-документ, представляющий все предпочтения, содержащиеся в этом узле и во всех его потомках.

abstract void flush()

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

abstract String get(String key, String def)

Возвращает значение, связанное с указанным ключом в этом узле предпочтений.

abstract boolean getBoolean(String key, boolean def)

Возвращает булево значение, представленное строкой, связанной с указанным ключом в этом узле предпочтений.

abstract byte[] getByteArray(String key, byte[] def)

Возвращает значение типа byte array, представленное строкой, связанной с указанным ключом в этом узле предпочтений.

abstract double getDouble(String key, double def)

Возвращает значение типа double, представленное строкой, связанной с указанным ключом в этом узле предпочтений.

abstract float getFloat(String key, float def)

Возвращает значение типа float, представленное строкой, связанной с указанным ключом в этом узле предпочтений.

abstract int getInt(String key, int def)

Возвращает значение типа int, представленное строкой, связанной с указанным ключом в этом узле предпочтений.

abstract long getLong(String key, long def)

Возвращает значение типа long, представленное строкой, связанной с указанным ключом в этом узле предпочтений.

static void importPreferences(InputStream is)

Импортирует все предпочтения, представленные XML-документом в указанном входном потоке.

abstract boolean isUserNode()

Возвращает true, если этот узел предпочтений находится в дереве пользовательских предпочтений, false, если он находится в дереве системных предпочтений.

abstract String[] keys()

Возвращает все ключи, имеющие связанное значение в этом узле предпочтений.

abstract String name()

Возвращает имя этого узла предпочтений, относительно его родителя.

abstract Preferences node(String pathName)

Возвращает узел предпочтений с заданным именем в том же дереве, что и этот узел, создавая его и любые его предков, если они еще не существуют.

abstract boolean nodeExists(String pathName)

Возвращает true, если узел предпочтений с заданным именем существует в том же дереве, что и этот узел.

abstract Preferences parent()

Возвращает родитель этого узла предпочтений, или null, если это корневой узел.

abstract void put(String key, String value)

Связывает указанное значение с указанным ключом в этом узле предпочтений.

abstract void putBoolean(String key, boolean value)

Связывает строку, представляющую указанное булево значение, с указанным ключом в этом узле предпочтений.

abstract void putByteArray(String key, byte[] value)

Связывает строку, представляющую указанный массив байтов, с указанным ключом в этом узле предпочтений.

abstract void putDouble(String key, double value)

Связывает строку, представляющую указанное значение типа double, с указанным ключом в этом узле предпочтений.

abstract void putFloat(String key, float value)

Связывает строку, представляющую указанное значение типа float, с указанным ключом в этом узле предпочтений.

abstract void putInt(String key, int value)

Связывает строку, представляющую указанное значение типа int, с указанным ключом в этом узле предпочтений.

abstract void putLong(String key, long value)

Связывает строку, представляющую указанное значение типа long, с указанным ключом в этом узле предпочтений.

abstract void remove(String key)

Удаляет значение, связанное с указанным ключом в этом узле предпочтений, если оно есть.

abstract void removeNode()

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

abstract void removeNodeChangeListener(NodeChangeListener ncl)

Удаляет указанного NodeChangeListener, чтобы он больше не получал события изменения.

abstract void removePreferenceChangeListener(PreferenceChangeListener pcl)

Удаляет указанного слушателя изменений предпочтений, чтобы он больше не получал события изменения предпочтений.

abstract void sync()

Обеспечивает, что будущие чтение из этого узла предпочтений и его потомков отражают любые изменения, которые были сохранены в постоянное хранилище (из любого виртуальной машины) до вызова sync.

static Preferences systemNodeForPackage(Class<?> c)

Возвращает узел предпочтений из дерева системных предпочтений, связанный (по соглашению) с пакетом указанного класса.

static Preferences systemRoot()

Возвращает корневой узел предпочтений для системы.

abstract String toString()

Возвращает строковое представление этого узла предпочтений, как если бы оно было вычислено выражением:(this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath().

static Preferences userNodeForPackage(Class<?> c)

Возвращает узел предпочтений из дерева предпочтений вызывающего пользователя, связанный (по соглашению) с пакетом указанного класса.

static Preferences userRoot()

Возвращает корневой узел предпочтений для вызывающего пользователя.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Поля

MAX_KEY_LENGTH

public static final int MAX_KEY_LENGTH

Максимальная длина строки, разрешенной в качестве ключа (80 символов).

См. также:
Значения постоянных полей

MAX_VALUE_LENGTH

public static final int MAX_VALUE_LENGTH

Максимальная длина строки, разрешенной в качестве значения (8192 символа).

См. также:
Значения постоянных полей

MAX_NAME_LENGTH

public static final int MAX_NAME_LENGTH

Максимальная длина имени узла (80 символов).

См. также:
Значения постоянных полей

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

Preferences

protected Preferences()

Единственный конструктор. (Для вызова подклассами, как правило, неявный).

Методы

userNodeForPackage

public static Preferences userNodeForPackage(Class<?> c)

Возвращает узел настроек пользователя из дерева настроек вызывающего пользователя, который связан (по соглашению) с пакетом указанного класса. Соглашение следующее: абсолютное имя пути узла — это полное квалифицированное имя пакета, предваряемое косой чертой ('/'), и каждый период ('.') заменяется косой чертой. Например, абсолютное имя пути узла, связанного с классом com.acme.widget.Foo — это /com/acme/widget.

Это соглашение не относится к безымянному пакету, узел настроек которого — <unnamed>. Этот узел не предназначен для длительного использования, но для удобства на ранних этапах разработки программ, которые еще не принадлежат к пакету, и для «одноразовых» программ. Ценные данные не должны храниться в этом узле, так как он доступен всем программам, которые его используют.

Класс Foo желающий получить доступ к настройкам, относящимся к своему пакету, может получить узел настроек следующим образом:

static Preferences prefs = Preferences.userNodeForPackage(Foo.class);
Этот идиома избавляет от необходимости использовать строку для описания узла настроек и снижает вероятность ошибки во время выполнения. (Если имя класса написано неправильно, это обычно приведет к ошибке компиляции).

Вызов этого метода приведет к созданию возвращаемого узла и его предков, если они еще не существуют. Если возвращаемый узел не существовал до этого вызова, этот узел и любые предки, созданные этим вызовом, не гарантируются постоянными, пока метод flush не будет вызван на возвращаемом узле (или одном из его предков или потомков).

Параметры:
c - класс, для пакета которого требуется узел настроек пользователя.
Возвращает:
узел настроек пользователя, связанный с пакетом, членом которого является c.
Исключения:
NullPointerException - если c является null.
SecurityException - если менеджер безопасности присутствует и отклоняет RuntimePermission("preferences").
См. также:
RuntimePermission

systemNodeForPackage

public static Preferences systemNodeForPackage(Class<?> c)

Возвращает узел настроек из системного дерева настроек, который связан (по соглашению) с пакетом указанного класса. Соглашение следующее: абсолютное имя пути узла — это полное квалифицированное имя пакета, предваряемое косой чертой ('/'), и каждый период ('.') заменяется косой чертой. Например, абсолютное имя пути узла, связанного с классом com.acme.widget.Foo — это /com/acme/widget.

Это соглашение не относится к безымянному пакету, узел настроек которого — <unnamed>. Этот узел не предназначен для длительного использования, но для удобства на ранних этапах разработки программ, которые еще не принадлежат к пакету, и для «одноразовых» программ. Ценные данные не должны храниться в этом узле, так как он доступен всем программам, которые его используют.

Класс Foo желающий получить доступ к настройкам, относящимся к своему пакету, может получить узел настроек следующим образом:

static Preferences prefs = Preferences.systemNodeForPackage(Foo.class);
Этот идиома избавляет от необходимости использовать строку для описания узла настроек и снижает вероятность ошибки во время выполнения. (Если имя класса написано неправильно, это обычно приведет к ошибке компиляции).

Вызов этого метода приведет к созданию возвращаемого узла и его предков, если они еще не существуют. Если возвращаемый узел не существовал до этого вызова, этот узел и любые предки, созданные этим вызовом, не гарантируются постоянными, пока метод flush не будет вызван на возвращаемом узле (или одном из его предков или потомков).

Параметры:
c - класс, для пакета которого требуется системный узел настроек.
Возвращает:
системный узел настроек, связанный с пакетом, членом которого является c.
Исключения:
NullPointerException - если c является null.
SecurityException - если менеджер безопасности присутствует и отклоняет RuntimePermission("preferences").
См. также:
RuntimePermission

userRoot

public static Preferences userRoot()

Возвращает корневой узел настроек для вызывающего пользователя.

Возвращает:
корневой узел настроек для вызывающего пользователя.
Исключения:
SecurityException - Если менеджер безопасности присутствует и отклоняет RuntimePermission("preferences").
См. также:
RuntimePermission

systemRoot

public static Preferences systemRoot()

Возвращает корневой узел настроек для системы.

Возвращает:
корневой узел настроек для системы.
Исключения:
SecurityException - Если менеджер безопасности присутствует и отклоняет RuntimePermission("preferences").
См. также:
RuntimePermission

put

public abstract void put(String key,
                         String value)

Связывает указанное значение с указанным ключом в этом узле настроек.

Параметры:
key - ключ, с которым должно быть связано указанное значение.
value - значение, которое должно быть связано с указанным ключом.
Исключения:
NullPointerException - если ключ или значение являются null.
IllegalArgumentException - если key.length() превышает MAX_KEY_LENGTH или если value.length превышает MAX_VALUE_LENGTH.
IllegalStateException - если этот узел (или предок) был удален с помощью метода removeNode().

get

public abstract String get(String key,
                           String def)

Возвращает значение, связанное с указанным ключом в этом узле настроек. Возвращает указанный по умолчанию, если нет значения, связанного с ключом, или хранилище недоступно.

Некоторые реализации могут хранить значения по умолчанию в своих хранилищах. Если нет значения, связанного с указанным ключом, но есть такое хранимое значение по умолчанию, оно возвращается вместо указанного по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено.
def - значение, которое должно быть возвращено в случае, если в этом узле настроек нет значения, связанного с key.
Возвращает:
значение, связанное с key, или def если нет значения, связанного с key, или хранилище недоступно.
Исключения:
IllegalStateException - если этот узел (или предок) был удален с помощью метода removeNode().
NullPointerException - если key является null. (Значение null для def разрешено.)

remove

public abstract void remove(String key)

Удаляет связанное значение с указанным ключом в этом узле настроек, если таковое имеется.

Если данная реализация поддерживает хранимые значения по умолчанию, и существует такое значение по умолчанию для указанной настройки, хранимое значение по умолчанию будет «экспонировано» этим вызовом, в том смысле, что оно будет возвращено последующим вызовом к get.

Параметры:
key - ключ, отображение которого должно быть удалено из узла настроек.
Исключения:
NullPointerException - если key является null.
IllegalStateException - если этот узел (или предок) был удален с помощью метода removeNode().

clear

public abstract void clear()
                    throws BackingStoreException

Удаляет все настройки (сопоставления ключ-значение) в этом узле настроек. Этот вызов не влияет на потомков этого узла.

Если данная реализация поддерживает хранимые значения по умолчанию, и этот узел в иерархии настроек содержит такие значения по умолчанию, хранимые значения по умолчанию будут «экспонированы» этим вызовом, в том смысле, что они будут возвращены последующими вызовами к get.

Исключения:
BackingStoreException - если эта операция не может быть завершена из-за сбоя в хранилище или невозможности связи с ним.
IllegalStateException - если этот узел (или предок) был удален с помощью метода removeNode().
См. также:
removeNode()

putInt

public abstract void putInt(String key,
                            int value)

Связывает строку, представляющую указанное целочисленное значение, с указанным ключом в этом узле настроек. Связанная строка — это та, которая была бы возвращена, если бы целочисленное значение было передано в Integer.toString(int). Этот метод предназначен для использования совместно с getInt(java.lang.String, int).

Параметры:
key - ключ, с которым должна быть связана строковая форма значения.
value - значение, строковая форма которого должна быть связана с ключом.
Исключения:
NullPointerException - если key имеет значение null.
IllegalArgumentException - если key.length() превышает MAX_KEY_LENGTH.
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
См. также:
getInt(String,int)

getInt

public abstract int getInt(String key,
                           int def)

Возвращает целочисленное значение, представленное строкой, связанной со указанным ключом в этом узле настроек. Строка преобразуется в целое число с помощью Integer.parseInt(String). Возвращает указанное значение по умолчанию, если значение не ассоциировано с ключом, хранилище недоступно или если Integer.parseInt(String) вызовет исключение NumberFormatException, если связанное значение будет передано. Этот метод предназначен для совместного использования с putInt(java.lang.String, int).

Если реализация поддерживает хранимые значения по умолчанию и такое значение существует, доступно и может быть преобразовано в целое число с помощью Integer.parseInt, возвращается это целое число вместо заданного значения по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено как целое число.
def - значение, которое должно быть возвращено в случае, если в этом узле настроек нет значения, связанного с key, или связанное значение не может быть интерпретировано как целое число, или хранилище недоступно.
Возвращает:
целочисленное значение, представленное строкой, связанной с key в этом узле настроек, или def, если связанного значения не существует или оно не может быть интерпретировано как целое число.
Исключения:
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
NullPointerException - если key имеет значение null.
См. также:
putInt(String,int), get(String,String)

putLong

public abstract void putLong(String key,
                             long value)

Связывает строку, представляющую заданное значение long, со значением ключа в этом узле настроек. Связанная строка — это та, что была бы возвращена, если бы значение long было передано в Long.toString(long). Этот метод предназначен для совместного использования с getLong(java.lang.String, long).

Параметры:
key - ключ, с которым должна быть связана строковая форма значения.
value - значение, строковая форма которого должна быть связана с ключом.
Исключения:
NullPointerException - если key имеет значение null.
IllegalArgumentException - если key.length() превышает MAX_KEY_LENGTH.
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
См. также:
getLong(String,long)

getLong

public abstract long getLong(String key,
                             long def)

Возвращает значение long, представленное строкой, связанной с указанным ключом в этом узле настроек. Строка преобразуется в значение long с помощью Long.parseLong(String). Возвращает заданное значение по умолчанию, если значение не ассоциировано с ключом, хранилище недоступно или если Long.parseLong(String) вызовет исключение NumberFormatException, если связанное значение будет передано. Этот метод предназначен для совместного использования с putLong(java.lang.String, long).

Если реализация поддерживает хранимые значения по умолчанию и такое значение существует, доступно и может быть преобразовано в long с помощью Long.parseLong, возвращается это значение long вместо заданного значения по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено как long.
def - значение, которое должно быть возвращено в случае, если в этом узле настроек нет значения, связанного с key, или связанное значение не может быть интерпретировано как long, или хранилище недоступно.
Возвращает:
значение long, представленное строкой, связанной с key в этом узле настроек, или def, если связанного значения не существует или оно не может быть интерпретировано как long.
Исключения:
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
NullPointerException - если key имеет значение null.
См. также:
putLong(String,long), get(String,String)

putBoolean

public abstract void putBoolean(String key,
                                boolean value)

Связывает строку, представляющую заданное логическое значение, с указанным ключом в этом узле настроек. Связанная строка — это "true", если значение равно true, и "false", если оно равно false. Этот метод предназначен для совместного использования с getBoolean(java.lang.String, boolean).

Параметры:
key - ключ, с которым должна быть связана строковая форма значения.
value - значение, строковая форма которого должна быть связана с ключом.
Исключения:
NullPointerException - если key имеет значение null.
IllegalArgumentException - если key.length() превышает MAX_KEY_LENGTH.
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
См. также:
getBoolean(String,boolean), get(String,String)

getBoolean

public abstract boolean getBoolean(String key,
                                   boolean def)

Возвращает логическое значение, представленное строкой, связанной с указанным ключом в этом узле настроек. Допустимые строки — "true", которая представляет true, и "false", которая представляет false. Регистр игнорируется, поэтому, например, "TRUE" и "False" также являются допустимыми. Этот метод предназначен для совместного использования с putBoolean(java.lang.String, boolean).

Возвращает заданное значение по умолчанию, если значение не ассоциировано с ключом, хранилище недоступно или если связанное значение не является "true" или "false", игнорируя регистр.

Если реализация поддерживает хранимые значения по умолчанию и такое значение существует и доступно, оно используется вместо заданного значения по умолчанию, если хранимое значение не является "true" или "false", игнорируя регистр, в этом случае используется заданное значение по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено как boolean.
def - значение, которое должно быть возвращено в случае, если в этом узле настроек нет значения, связанного с key, или связанное значение не может быть интерпретировано как boolean, или хранилище недоступно.
Возвращает:
логическое значение, представленное строкой, связанной с key в этом узле настроек, или def, если связанного значения не существует или оно не может быть интерпретировано как boolean.
Исключения:
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
NullPointerException - если key имеет значение null.
См. также:
get(String,String), putBoolean(String,boolean)

putFloat

public abstract void putFloat(String key,
                              float value)

Связывает строку, представляющую заданное значение float, со значением ключа в этом узле настроек. Связанная строка — это та, что была бы возвращена, если бы значение float было передано в Float.toString(float). Этот метод предназначен для совместного использования с getFloat(java.lang.String, float).

Параметры:
key - ключ, с которым должна быть связана строковая форма значения.
value - значение, строковая форма которого должна быть связана с ключом.
Исключения:
NullPointerException - если key имеет значение null.
IllegalArgumentException - если key.length() превышает MAX_KEY_LENGTH.
IllegalStateException - если этот узел (или предковый) был удалён методом removeNode().
См. также:
getFloat(String,float)

getFloat

public abstract float getFloat(String key,
                               float def)

Возвращает значение float, представленное строкой, связанной с указанным ключом в этом узле настроек. Строка преобразуется в значение float с помощью Float.parseFloat(String). Возвращает заданное значение по умолчанию, если значение не ассоциировано с ключом, хранилище недоступно или если Float.parseFloat(String) вызовет исключение NumberFormatException, если связанное значение будет передано. Этот метод предназначен для совместного использования с putFloat(java.lang.String, float).

Если реализация поддерживает хранимые значения по умолчанию и такое значение существует, доступно и может быть преобразовано в float с помощью Float.parseFloat, возвращается это значение float вместо заданного значения по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено как число с плавающей точкой.
def - значение, которое должно быть возвращено в случае, если у этого узла настроек нет значения, связанного с key, или связанное значение не может быть интерпретировано как число с плавающей точкой, или кэш недоступен.
Возвращает:
значение с плавающей точкой, представленное строкой, связанной с key в этом узле настроек, или def, если связанное значение не существует или не может быть интерпретировано как число с плавающей точкой.
Исключение:
IllegalStateException - если этот узел (или предшественник) был удален с помощью метода removeNode().
NullPointerException - если key равно null.
См. также:
putFloat(String,float), get(String,String)

putDouble

public abstract void putDouble(String key,
                               double value)

Связывает строку, представляющую указанное значение типа double, с указанным ключом в этом узле настроек. Связанная строка — это строка, которая была бы возвращена, если бы значение типа double было передано в Double.toString(double). Этот метод предназначен для использования совместно с getDouble(java.lang.String, double).

Параметры:
key - ключ, с которым будет связана строковая форма значения.
value - значение, строковая форма которого будет связана с ключом.
Исключение:
NullPointerException - если key равно null.
IllegalArgumentException - если key.length() превышает MAX_KEY_LENGTH.
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().
См. также:
getDouble(String,double)

getDouble

public abstract double getDouble(String key,
                                 double def)

Возвращает значение типа double, представленное строкой, связанной с указанным ключом в этом узле настроек. Строка преобразуется в целое число с помощью Double.parseDouble(String). Возвращает указанное значение по умолчанию, если нет значения, связанного с ключом, кэш недоступен или если Double.parseDouble(String) вызовет NumberFormatException, если связанное значение было передано. Этот метод предназначен для использования совместно с putDouble(java.lang.String, double).

Если реализация поддерживает хранимые значения по умолчанию и такое значение по умолчанию существует, доступно и может быть преобразовано в число с плавающей точкой с помощью Double.parseDouble, это число с плавающей точкой возвращается в предпочтение указанному значению по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено как число с плавающей точкой double.
def - значение, которое должно быть возвращено в случае, если у этого узла настроек нет значения, связанного с key, или связанное значение не может быть интерпретировано как число с плавающей точкой double, или кэш недоступен.
Возвращает:
значение типа double, представленное строкой, связанной с key в этом узле настроек, или def, если связанное значение не существует или не может быть интерпретировано как число с плавающей точкой double.
Исключение:
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().
NullPointerException - если key равно null.
См. также:
putDouble(String,double), get(String,String)

putByteArray

public abstract void putByteArray(String key,
                                  byte[] value)

Связывает строку, представляющую указанный массив байтов, с указанным ключом в этом узле настроек. Связанная строка — это кодировка массива байтов в формате Base64, как определено в RFC 2045, раздел 6.8, с одним небольшим изменением: строка будет содержать только символы из алфавита Base64; она не будет содержать символов новой строки. Обратите внимание, что максимальная длина массива байтов ограничена тремя четвертями MAX_VALUE_LENGTH, чтобы длина закодированной в Base64 строки не превышала MAX_VALUE_LENGTH. Этот метод предназначен для использования совместно с getByteArray(java.lang.String, byte[]).

Параметры:
key - ключ, с которым будет связана строковая форма значения.
value - значение, строковая форма которого будет связана с ключом.
Исключение:
NullPointerException - если ключ или значение является null.
IllegalArgumentException - если длина ключа превышает MAX_KEY_LENGTH или длина массива байтов превышает MAX_VALUE_LENGTH*3/4.
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().
См. также:
getByteArray(String,byte[]), get(String,String)

getByteArray

public abstract byte[] getByteArray(String key,
                                    byte[] def)

Возвращает массив байтов, представленный строкой, связанной с указанным ключом в этом узле настроек. Действительные строки — это бинарные данные, закодированные в формате Base64, как определено в RFC 2045, раздел 6.8, с одним небольшим изменением: строка должна содержать только символы из алфавита Base64; символы новой строки или лишние символы не допускаются. Этот метод предназначен для использования совместно с putByteArray(java.lang.String, byte[]).

Возвращает указанное значение по умолчанию, если нет значения, связанного с ключом, кэш недоступен или связанное значение не является валидным массивом байтов, закодированным в Base64 (как определено выше).

Если реализация поддерживает хранимые значения по умолчанию и такое значение по умолчанию существует и доступно, оно используется вместо указанного значения по умолчанию, если хранимое значение по умолчанию не является валидным массивом байтов, закодированным в Base64 (как определено выше), в этом случае используется указанное значение по умолчанию.

Параметры:
key - ключ, связанное значение которого должно быть возвращено как массив байтов.
def - значение, которое должно быть возвращено в случае, если у этого узла настроек нет значения, связанного с key, или связанное значение не может быть интерпретировано как массив байтов, или кэш недоступен.
Возвращает:
массив байтов, представленный строкой, связанной с key в этом узле настроек, или def, если связанное значение не существует или не может быть интерпретировано как массив байтов.
Исключение:
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().
NullPointerException - если key равно null. (Значение null для def разрешено.)
См. также:
get(String,String), putByteArray(String,byte[])

keys

public abstract String[] keys()
                       throws BackingStoreException

Возвращает все ключи, для которых в этом узле настроек есть связанное значение. (Возвращаемый массив будет пустым, если в этом узле нет настроек.)

Если реализация поддерживает хранимые значения по умолчанию и в этом узле есть такие значения по умолчанию, которые не были переопределены явными настройками, значения по умолчанию возвращаются в массиве в дополнение к любым явным настройкам.

Возвращает:
массив ключей, для которых в этом узле настроек есть связанное значение.
Исключение:
BackingStoreException - если эту операцию нельзя выполнить из-за сбоя в кэше или потери связи с ним.
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().

childrenNames

public abstract String[] childrenNames()
                                throws BackingStoreException

Возвращает имена дочерних узлов этого узла настроек, относительно этого узла. (Возвращаемый массив будет пустым, если у этого узла нет дочерних узлов.)

Возвращает:
имена дочерних узлов этого узла настроек.
Исключение:
BackingStoreException - если эту операцию нельзя выполнить из-за сбоя в кэше или потери связи с ним.
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().

parent

public abstract Preferences parent()

Возвращает родительский узел этого узла настроек или null, если это корневой узел.

Возвращает:
родительский узел этого узла настроек.
Исключение:
IllegalStateException - если этот узел (или предшественник) был удалён методом removeNode().

node

public abstract Preferences node(String pathName)

Возвращает узел настроек с указанным именем в том же дереве, что и этот узел, создавая его и все его предков, если они ещё не существуют. Принимает имя относительного или абсолютного пути. Имена относительных путей (не начинающиеся с символа косой черты ('/')) интерпретируются относительно этого узла настроек.

Если возвращаемый узел не существовал до этого вызова, этот узел и все предки, созданные этим вызовом, не гарантированно станут постоянными до тех пор, пока метод flush не будет вызван на возвращённом узле (или одном из его предков или потомков).

Параметры:
pathName - имя пути узла предпочтений для возврата.
Возвращает:
указанный узел предпочтений.
Исключения:
IllegalArgumentException - если имя пути некорректно (например, содержит несколько последовательных символов косой черты или оканчивается символом косой черты и имеет длину более одного символа).
NullPointerException - если имя пути равно null.
IllegalStateException - если этот узел (или его предшественник) был удален методом removeNode().
См. также:
flush()

nodeExists

public abstract boolean nodeExists(String pathName)
                            throws BackingStoreException

Возвращает true, если узел предпочтений с указанным именем существует в том же дереве, что и этот узел. Относительные имена путей (которые не начинаются с символа косой черты ('/')) интерпретируются относительно этого узла предпочтений.

Если этот узел (или его предшественник) уже был удален методом removeNode(), вызов этого метода допустим, но только с именем пути ""; вызов вернет false. Таким образом, выражение p.nodeExists("") можно использовать для проверки, был ли p удалён.

Параметры:
pathName - имя пути узла, существование которого необходимо проверить.
Возвращает:
true, если указанный узел существует.
Исключения:
BackingStoreException - если данная операция не может быть завершена из-за сбоя в базе данных или невозможности связи с ней.
IllegalArgumentException - если имя пути некорректно (например, содержит несколько последовательных символов косой черты или оканчивается символом косой черты и имеет длину более одного символа).
NullPointerException - если имя пути равно null.
IllegalStateException - если этот узел (или его предшественник) был удален методом removeNode() и pathName не является пустой строкой ("").

removeNode

public abstract void removeNode()
                         throws BackingStoreException

Удаляет этот узел предпочтений и все его потомки, аннулируя любые предпочтения, содержащиеся в удаленных узлах. После удаления узла, любая попытка использовать метод, кроме name(), absolutePath(), isUserNode(), flush() или nodeExists("") на соответствующем экземпляре Preferences завершится с IllegalStateException (методы, определённые в Object, по-прежнему могут быть вызваны на узле после его удаления; они не будут генерировать IllegalStateException).

Удаление не гарантируется как постоянное до вызова метода flush на этом узле (или его предшественнике).

Если данная реализация поддерживает хранимые значения по умолчанию, удаление узла раскрывает любые хранимые значения по умолчанию на этом узле или ниже. Таким образом, последующий вызов nodeExists с именем пути этого узла может вернуть true, и последующий вызов node с этим именем пути может вернуть (другой) экземпляр Preferences, представляющий непустой набор предпочтений и/или дочерних элементов.

Исключения:
BackingStoreException - если данная операция не может быть завершена из-за сбоя в базе данных или невозможности связи с ней.
IllegalStateException - если этот узел (или его предшественник) уже был удален методом removeNode().
UnsupportedOperationException - если этот метод вызван на корневом узле.
См. также:
flush()

name

public abstract String name()

Возвращает имя этого узла предпочтений, относительно его родительского узла.

Возвращает:
Имя этого узла предпочтений, относительно его родительского узла.

absolutePath

public abstract String absolutePath()

Возвращает абсолютное имя пути этого узла предпочтений.

Возвращает:
Абсолютное имя пути этого узла предпочтений.

isUserNode

public abstract boolean isUserNode()

Возвращает true если этот узел предпочтений находится в дереве пользовательских предпочтений, false если он находится в дереве системных предпочтений.

Возвращает:
true если этот узел предпочтений находится в дереве пользовательских предпочтений, false если он находится в дереве системных предпочтений.

toString

public abstract String toString()

Возвращает строковое представление этого узла предпочтений, как если бы оно было вычислено выражением: (this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath().

Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

flush

public abstract void flush()
                    throws BackingStoreException

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

Реализации могут произвольно записывать изменения в постоянное хранилище в любое время. Они не обязаны ждать вызова этого метода.

Когда выполняется запись в новый узел, он становится постоянным, как и любые предшественники (и потомки), которые еще не были сделаны постоянными. Однако любые изменения значений предпочтений в предшественниках не гарантируются как постоянные.

Если этот метод вызван на узле, который был удален методом removeNode(), flushSpi() вызывается для этого узла, но не для других.

Исключения:
BackingStoreException - если данная операция не может быть завершена из-за сбоя в базе данных или невозможности связи с ней.
См. также:
sync()

sync

public abstract void sync()
                   throws BackingStoreException

Обеспечивает, что будущие чтения из этого узла предпочтений и его потомков будут отражать любые изменения, внесенные в постоянное хранилище (любым виртуальной машиной) до вызова sync. В качестве побочного эффекта, принудительно записывает любые изменения в содержимое этого узла предпочтений и его потомков в постоянное хранилище, как если бы метод flush был вызван на этом узле.

Исключения:
BackingStoreException - если данная операция не может быть завершена из-за сбоя в базе данных или невозможности связи с ней.
IllegalStateException - если этот узел (или его предшественник) был удален методом removeNode().
См. также:
flush()

addPreferenceChangeListener

public abstract void addPreferenceChangeListener(PreferenceChangeListener pcl)

Регистрирует указанный слушатель для получения событий изменения предпочтений для этого узла предпочтений. Событие изменения предпочтений генерируется при добавлении предпочтения в этот узел, удалении из этого узла или изменении значения, связанного с предпочтением. (События изменения предпочтений не генерируются методом removeNode(), который генерирует событие изменения узла. События изменения предпочтений генерируются методом clear.)

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

Параметры:
pcl - слушатель изменений предпочтений для добавления.
Исключения:
NullPointerException - если pcl равно null.
IllegalStateException - если этот узел (или его предшественник) был удален методом removeNode().
См. также:
removePreferenceChangeListener(PreferenceChangeListener), addNodeChangeListener(NodeChangeListener)

removePreferenceChangeListener

public abstract void removePreferenceChangeListener(PreferenceChangeListener pcl)

Удаляет указанного слушателя изменений предпочтений, чтобы он больше не получал события о них.

Параметры:
pcl - слушатель изменений предпочтений для удаления.
Исключения:
IllegalArgumentException - если pcl не был зарегистрированным слушателем изменений предпочтений для этого узла.
IllegalStateException - если этот узел (или его предшественник) был удален методом removeNode().
См. также:
addPreferenceChangeListener(PreferenceChangeListener)

addNodeChangeListener

public abstract void addNodeChangeListener(NodeChangeListener ncl)

Регистрирует указанного слушателя для получения событий изменения узла для этого узла. Событие изменения узла генерируется при добавлении или удалении дочернего узла из этого узла. (Один вызов removeNode() приводит к нескольким событиям изменения узла, по одному для каждого узла в поддереве, укорененном в удаленном узле.)

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

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

Параметры:
ncl - Добавляемый NodeChangeListener.
Исключения:
NullPointerException - если ncl равно null.
IllegalStateException - если этот узел (или его предок) был удалён методом removeNode().
См. также:
removeNodeChangeListener(NodeChangeListener), addPreferenceChangeListener(PreferenceChangeListener)

removeNodeChangeListener

public abstract void removeNodeChangeListener(NodeChangeListener ncl)

Удаляет указанный NodeChangeListener, чтобы он больше не получал события о изменениях.

Параметры:
ncl - Удаляемый NodeChangeListener.
Исключения:
IllegalArgumentException - если ncl не был зарегистрированным NodeChangeListener для этого узла.
IllegalStateException - если этот узел (или его предок) был удалён методом removeNode().
См. также:
addNodeChangeListener(NodeChangeListener)

exportNode

public abstract void exportNode(OutputStream os)
                         throws IOException,
                                BackingStoreException

Выводит в указанный поток вывода XML-документ, представляющий все предпочтения, содержащиеся в этом узле (но не его потомки). Этот XML-документ, по сути, является автономной резервной копией узла.

XML-документ будет иметь следующую декларацию DOCTYPE:

<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
Будет использоваться кодировка UTF-8.

Этот метод является исключением из общего правила, что результаты одновременного выполнения нескольких методов в этом классе эквивалентны некоторому последовательному выполнению. Если предпочтения в этом узле изменяются одновременно с вызовом этого метода, экспортированные предпочтения представляют собой «нечёткую моментальную фотографию» предпочтений, содержащихся в узле; некоторые одновременные изменения могут быть отражены в экспортированных данных, а другие — нет.

Параметры:
os - поток вывода, в который будет выведен XML-документ.
Исключения:
IOException - если запись в указанный поток вывода приводит к IOException.
BackingStoreException - если данные предпочтений не могут быть считаны из хранилища.
IllegalStateException - если этот узел (или его предок) был удалён методом removeNode().
См. также:
importPreferences(InputStream)

exportSubtree

public abstract void exportSubtree(OutputStream os)
                            throws IOException,
                                   BackingStoreException

Выводит XML-документ, представляющий все предпочтения, содержащиеся в этом узле и во всех его потомках. Этот XML-документ, по сути, является автономной резервной копией поддерева с корнем в узле.

XML-документ будет иметь следующую декларацию DOCTYPE:

<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
Будет использоваться кодировка UTF-8.

Этот метод является исключением из общего правила, что результаты одновременного выполнения нескольких методов в этом классе эквивалентны некоторому последовательному выполнению. Если предпочтения или узлы в поддереве с корнем в этом узле изменяются одновременно с вызовом этого метода, экспортированные предпочтения представляют собой «нечёткую моментальную фотографию» поддерева; некоторые одновременные изменения могут быть отражены в экспортированных данных, а другие — нет.

Параметры:
os - поток вывода, в который будет выведен XML-документ.
Исключения:
IOException - если запись в указанный поток вывода приводит к IOException.
BackingStoreException - если данные предпочтений не могут быть считаны из хранилища.
IllegalStateException - если этот узел (или его предок) был удалён методом removeNode().
См. также:
importPreferences(InputStream), exportNode(OutputStream)

importPreferences

public static void importPreferences(InputStream is)
                              throws IOException,
                                     InvalidPreferencesFormatException

Импортирует все предпочтения, представленные XML-документом в указанном потоке ввода. Документ может представлять пользовательские предпочтения или системные предпочтения. Если он представляет пользовательские предпочтения, предпочтения будут импортированы в дерево предпочтений вызывающего пользователя (даже если они изначально пришли из дерева предпочтений другого пользователя). Если какие-либо из предпочтений, описанных в документе, находятся в узлах предпочтений, которых нет, узлы будут созданы.

XML-документ должен иметь следующую декларацию DOCTYPE:

<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
(Этот метод предназначен для использования совместно с exportNode(OutputStream) и exportSubtree(OutputStream).

Этот метод является исключением из общего правила, что результаты одновременного выполнения нескольких методов в этом классе эквивалентны некоторому последовательному выполнению. Метод ведет себя так, как если бы он был реализован поверх других публичных методов в этом классе, в частности node(String) и put(String, String).

Параметры:
is - поток ввода, из которого будет прочитан XML-документ.
Исключения:
IOException - если чтение из указанного потока ввода приводит к IOException.
InvalidPreferencesFormatException - Данные в потоке ввода не представляют собой допустимый XML-документ с указанным типом документа.
SecurityException - Если менеджер безопасности присутствует и запрещает RuntimePermission("preferences").
См. также:
RuntimePermission

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API