Класс CompoundName
- Все реализуемые интерфейсы:
-
Serializable,Cloneable,Comparable<Object>,Name
public class CompoundName extends Object implements Name
Компоненты составного имени пронумерованы. Индексы составного имени с N компонентами изменяются от 0 до N (не включая N). Этот диапазон можно записать как [0, N). Самый значимый компонент находится с индексом 0. Пустое составное имя не имеет компонентов.
Синтаксис составного имени
Синтаксис составного имени определяется набором свойств:- jndi.syntax.direction
- Направление для парсинга ("right_to_left", "left_to_right", "flat"). Если не указано, по умолчанию используется "flat", что означает, что пространство имён является плоским и не имеет иерархической структуры.
- jndi.syntax.separator
- Разделитель между компонентами атомного имени. Требуется, если направление не равно "flat".
- jndi.syntax.ignorecase
- Если присутствует, "true" означает игнорирование регистра при сравнении компонентов имени. Если его значение не "true", или если свойство отсутствует, регистр учитывается при сравнении компонентов имени.
- jndi.syntax.escape
- Если присутствует, задаёт строку экранирования для переопределения разделителей, экранированных символов и кавычек.
- jndi.syntax.beginquote
- Если присутствует, задаёт строку, определяющую начало цитированной строки.
- jndi.syntax.endquote
- Строка, определяющая конец цитированной строки. Если присутствует, задаёт строку, определяющую конец цитированной строки. Если отсутствует, используется syntax.beginquote в качестве конечной кавычки.
- jndi.syntax.beginquote2
- Альтернативный набор кавычек начала/конца.
- jndi.syntax.endquote2
- Альтернативный набор кавычек начала/конца.
- jndi.syntax.trimblanks
- Если присутствует, "true" означает обрезку начальных и конечных пробелов в компоненте имени для целей сравнения. Если его значение не "true", или если свойство отсутствует, пробелы учитываются.
- jndi.syntax.separator.ava
- Если присутствует, задаёт строку, разделяющую утверждения атрибут-значение, при указании нескольких пар атрибут/значение. (например, "," в age=65,gender=male).
- jndi.syntax.separator.typeval
- Если присутствует, задаёт строку, разделяющую атрибут и значение (например, "=" в "age=65").
- В строке без кавычек или экранирования любой экземпляр разделителя ограничивает два атомных имени. Каждое атомное имя называется компонентом.
- Разделитель, кавычка или символ экранирования экранируются, если за ними непосредственно (слева) следует символ экранирования.
- Если есть два набора кавычек, определённая начальная кавычка должна быть согласована с соответствующей конечной кавычкой.
- Начальная кавычка, которая не экранирована и предшествует компоненту, должна быть согласована с неэкранированной конечной кавычкой в конце компонента. Таким образом, цитированный компонент называется цитированным компонентом. Он анализируется путём удаления начальных и конечных кавычек, а интервенционные символы обрабатываются как обычные символы, если не применяется одно из правил, связанных с цитированными компонентами, указанных ниже.
- Кавычки, встроенные в нецитированные компоненты, рассматриваются как обычные строки и не требуют согласования.
- Разделитель, который экранирован или появляется между неэкранированными кавычками, обрабатывается как обычная строка и не является разделителем.
- Строка экранирования в цитированном компоненте действует как экранирование только тогда, когда за ней следует соответствующая конечная строка кавычек. Это может быть использовано для встраивания экранированной кавычки в цитированный компонент.
- Экранированная строка экранирования не рассматривается как строка экранирования.
- Строка экранирования, которая не предшествует метастроке (кавычки или разделителю) и не находится в конце компонента, обрабатывается как обычная строка.
- Начальный разделитель (строка составного имени начинается с разделителя) обозначает ведущий пустой атомный компонент (состоящий из пустой строки). Конечный разделитель (строка составного имени заканчивается разделителем) обозначает конечный пустой атомный компонент. Смежные разделители обозначают пустой атомный компонент.
Строковая форма составного имени следует описанному выше синтаксису. При преобразовании компонентов составного имени в их строковое представление применяются перечисленные выше правила синтаксиса резервирования (например, встроенные разделители экранируются или цитируются), чтобы при парсинге той же строки получались те же компоненты, что и в исходном составном имени.
Доступ из нескольких потоков
ЭкземплярCompoundName не синхронизирован против одновременного доступа из нескольких потоков. Несколько потоков, пытающихся получить доступ и изменить CompoundName, должны заблокировать объект.- С:
- 1.3
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Properties |
mySyntax |
Свойства синтаксиса для этого составного имени. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
| Создаёт новый экземпляр составного имени путём парсинга строки n с использованием синтаксиса, заданного предоставленными свойствами синтаксиса. |
||
protected |
Создаёт новый экземпляр составного имени, используя указанные в comps компоненты и синтаксис. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Name |
add |
Добавляет один компонент в указанную позицию в этом составном имени. |
Name |
add |
Добавляет один компонент в конец этого составного имени. |
Name |
addAll |
Добавляет компоненты составного имени — в порядке — в указанную позицию в этом составном имени. |
Name |
addAll |
Добавляет компоненты составного имени — в порядке — в конец этого составного имени. |
Object |
clone() |
Создаёт копию этого составного имени. |
int |
compareTo |
Сравнивает это CompoundName с указанным объектом для определения порядка. |
boolean |
endsWith |
Определяет, является ли составное имя суффиксом этого составного имени. |
boolean |
equals |
Определяет, является ли obj синтаксически равным этому составному имени. |
String |
get |
Возвращает компонент этого составного имени. |
Enumeration |
getAll() |
Возвращает компоненты этого составного имени как перечисление строк. |
Name |
getPrefix |
Создаёт составное имя, компоненты которого состоят из префикса компонентов в этом составном имени. |
Name |
getSuffix |
Создаёт составное имя, компоненты которого состоят из суффикса компонентов в этом составном имени. |
int |
hashCode() |
Вычисляет код хэш-суммы этого составного имени. |
boolean |
isEmpty() |
Определяет, является ли это составное имя пустым. |
Object |
remove |
Удаляет компонент из этого составного имени. |
int |
size() |
Возвращает количество компонентов в этом составном имени. |
boolean |
startsWith |
Определяет, является ли составное имя префиксом этого составного имени. |
String |
toString() |
Генерирует строковое представление этого составного имени, используя правила синтаксиса составного имени. |
Подробное описание полей
mySyntax
protected transient Properties mySyntax
Подробное описание конструкторов
CompoundName
protected CompoundName(Enumeration<String> comps, Properties syntax)
- Параметры:
-
comps- Непустой перечисление компонентов для добавления. Каждый элемент перечисления имеет тип String. Перечисление будет использовано для извлечения его элементов. -
syntax- Непустой список свойств, определяющих синтаксис этого составного имени. См. описание класса для содержимого свойств.
CompoundName
public CompoundName(String n, Properties syntax) throws InvalidNameException
- Параметры:
-
n- Непустая строка для парсинга. -
syntax- Непустой список свойств, определяющих синтаксис этого составного имени. См. описание класса для содержимого свойств. - Исключения:
-
InvalidNameException- Если 'n' нарушает синтаксис, заданныйsyntax.
Подробное описание методов
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Непустое строковое представление этого составного имени.
equals
public boolean equals(Object obj)
Равенство также определяется с точки зрения синтаксиса этого составного имени. По умолчанию реализация CompoundName использует свойства синтаксиса jndi.syntax.ignorecase и jndi.syntax.trimblanks при сравнении двух компонентов на равенство. Если регистр игнорируется, две строки с одинаковой последовательностью символов, но с разными регистрами, считаются равными. Если пробелы обрезаются, ведущие и хвостовые пробелы игнорируются для целей сравнения.
Оба составных имени должны иметь одинаковое количество компонентов.
Примечание к реализации: В настоящее время свойства синтаксиса двух составных имён не сравниваются на равенство. Они могут быть сравнимы в будущем.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Возможно нулевой объект для сравнения. - Возвращает:
- true, если obj равен этому составному имени, иначе false.
- См. также:
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Целое число, представляющее хэш-код этого имени.
- См. также:
clone
public Object clone()
- Определяет:
-
cloneв интерфейсеName - Переопределяет:
-
cloneв классеObject - Возвращает:
- Непустую копию этого составного имени.
- См. также:
compareTo
public int compareTo(Object obj)
Если obj равен null или не является экземпляром CompoundName, выбрасывается ClassCastException.
См. equals(), чтобы понять, что означает равенство двух составных имён. Если два составных имени равны, возвращается 0.
Порядок составных имён зависит от синтаксиса составного имени. По умолчанию они следуют лексикографическим правилам сравнения строк с расширением, что это относится ко всем компонентам составного имени и что сравнение отдельных компонентов зависит от свойств jndi.syntax.ignorecase и jndi.syntax.trimblanks, аналогично тому, как они влияют на equals(). Если это составное имя «лексикографически» меньше obj, возвращается отрицательное число. Если это составное имя «лексикографически» больше obj, возвращается положительное число.
Примечание к реализации: В настоящее время свойства синтаксиса двух составных имён не сравниваются при проверке порядка. Они могут быть сравнимы в будущем.
- Определяет:
-
compareToв интерфейсеComparable<Object> - Определяет:
-
compareToв интерфейсеName - Параметры:
-
obj- Непустой объект для сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, в зависимости от того, является ли это имя меньше, равно или больше данного объекта.
- Исключения:
-
ClassCastException- если obj не является CompoundName. - См. также:
size
public int size()
- Определяет:
-
sizeв интерфейсеName - Возвращает:
- Неотрицательное число компонентов в этом составном имени.
isEmpty
public boolean isEmpty()
- Определяет:
-
isEmptyв интерфейсеName - Возвращает:
- true, если это составное имя пустое, иначе false.
getAll
public Enumeration<String> getAll()
- Определяет:
-
getAllв интерфейсеName - Возвращает:
- Непустое перечисление компонентов этого составного имени. Каждый элемент перечисления имеет тип String.
get
public String get(int posn)
- Определяет:
-
getв интерфейсеName - Параметры:
-
posn- Базовый индекс (с 0) компонента для получения. Должен быть в диапазоне [0, size()). - Возвращает:
- Компонент в позиции posn.
- Исключения:
-
ArrayIndexOutOfBoundsException- если posn находится вне заданного диапазона.
getPrefix
public Name getPrefix(int posn)
- Определяет:
-
getPrefixв интерфейсеName - Параметры:
-
posn- Базовый индекс (с 0) компонента, по которому следует остановить. Должен быть в диапазоне [0, size()]. - Возвращает:
- Составное имя, состоящее из компонентов в диапазоне [0, posn).
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn находится вне заданного диапазона.
getSuffix
public Name getSuffix(int posn)
- Определяет:
-
getSuffixв интерфейсеName - Параметры:
-
posn- Базовый индекс (с 0) компонента, с которого начать. Должен быть в диапазоне [0, size()]. - Возвращает:
- Составное имя, состоящее из компонентов в диапазоне [posn, size()). Если posn равен size(), возвращается пустое составное имя.
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn находится вне заданного диапазона.
startsWith
public boolean startsWith(Name n)
Примечание к реализации: в настоящее время свойства синтаксиса n не используются при сравнении. В будущем они могут быть использованы.
- Specified by:
-
startsWithв интерфейсеName - Parameters:
-
n- Возможная составное имя, которое нужно проверить. - Returns:
- true, если n является составным именем и является префиксом этого составного имени, в противном случае false.
endsWith
public boolean endsWith(Name n)
Примечание к реализации: в настоящее время свойства синтаксиса n не используются при сравнении. В будущем они могут быть использованы.
- Specified by:
-
endsWithв интерфейсеName - Parameters:
-
n- Возможная составное имя, которое нужно проверить. - Returns:
- true, если n является составным именем и является суффиксом этого составного имени, в противном случае false.
addAll
public Name addAll(Name suffix) throws InvalidNameException
Примечание к реализации: в настоящее время свойства синтаксиса суффикса не используются или проверяются. В будущем они могут быть использованы.
- Specified by:
-
addAllв интерфейсеName - Parameters:
-
suffix- Непустые компоненты для добавления. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если суффикс не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышает количество компонентов).
addAll
public Name addAll(int posn, Name n) throws InvalidNameException
Примечание к реализации: в настоящее время свойства синтаксиса суффикса не используются или проверяются. В будущем они могут быть использованы.
- Specified by:
-
addAllв интерфейсеName - Parameters:
-
posn- Индекс в этом имени, в котором нужно добавить новые компоненты. Должно быть в диапазоне [0,size()]. -
n- Непустые компоненты для добавления. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона. -
InvalidNameException- Если n не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышает количество компонентов).
add
public Name add(String comp) throws InvalidNameException
- Specified by:
-
addв интерфейсеName - Parameters:
-
comp- Непустой компонент для добавления. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если добавление comp в конец имени нарушит синтаксис составного имени.
add
public Name add(int posn, String comp) throws InvalidNameException
- Specified by:
-
addв интерфейсеName - Parameters:
-
posn- Индекс, в котором нужно добавить новый компонент. Должно быть в диапазоне [0,size()]. -
comp- Непустой компонент для добавления. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона. -
InvalidNameException- Если добавление comp в указанную позицию нарушит синтаксис составного имени.
remove
public Object remove(int posn) throws InvalidNameException
- Specified by:
-
removeв интерфейсеName - Parameters:
-
posn- Индекс компонента для удаления. Должно быть в диапазоне [0,size()). - Returns:
- Удаленный компонент (строка).
- Throws:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона (включая случай, когда составное имя пустое). -
InvalidNameException- Если удаление компонента нарушит синтаксис составного имени.
© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.naming/javax/naming/CompoundName.html