Класс CompoundName
- Все реализуемые интерфейсы:
-
Serializable,Cloneable,Comparable<Object>,Name
public class CompoundName extends Object implements Name
Компоненты составного имени пронумерованы. Индексы составного имени с N компонентами варьируются от 0 до, но не включая, 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 и syntax компонентов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Name |
add |
Добавляет один компонент в указанную позицию в этом составном имени. |
Name |
add |
Добавляет один компонент в конец этого составного имени. |
Name |
addAll |
Добавляет компоненты составного имени — в порядке — в указанную позицию в этом составном имени. |
Name |
addAll |
Добавляет компоненты составного имени — в порядке — в конец этого составного имени. |
Object |
clone() |
Создаёт копию этого составного имени. |
int |
compareTo |
Сравнивает это CompoundName с заданным объектом по порядку. |
boolean |
endsWith |
Определяет, является ли составное имя суффиксом этого составного имени. |
boolean |
equals |
Определяет, является ли obj синтаксически равным этому составному имени. |
String |
get |
Возвращает компонент этого составного имени. |
Enumeration<String> |
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- Возможно null объект для сравнения. - Возвращает:
- 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,size()). - Возвращает:
- Компонент по индексу posn.
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn выходит за указанный диапазон.
getPrefix
public Name getPrefix(int posn)
- Определено в:
-
getPrefixв интерфейсеName - Параметры:
-
posn- Индекс компонента, после которого следует остановить (с нуля). Должен быть в диапазоне [0,size()]. - Возвращает:
- Составное имя, состоящее из компонентов в диапазоне [0, posn).
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn выходит за указанный диапазон.
getSuffix
public Name getSuffix(int posn)
- Определено в:
-
getSuffixв интерфейсеName - Параметры:
-
posn- Индекс компонента, с которого следует начать (с нуля). Должен быть в диапазоне [0,size()]. - Возвращает:
- Составное имя, состоящее из компонентов в диапазоне [posn, size()). Если posn равно size(), возвращается пустое составное имя.
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn выходит за указанный диапазон.
startsWith
public boolean startsWith(Name n)
Примечание к реализации: В настоящее время синтаксические свойства n не используются при сравнении. В будущем они могут быть использованы.
- Указано в:
-
startsWithв интерфейсеName - Параметры:
-
n- Возможная пустая строка составного имени для проверки. - Возвращает:
- true, если n является CompoundName и является префиксом этого составного имени, в противном случае false.
endsWith
public boolean endsWith(Name n)
Примечание к реализации: В настоящее время синтаксические свойства n не используются при сравнении. В будущем они могут быть использованы.
- Указано в:
-
endsWithв интерфейсеName - Параметры:
-
n- Возможная пустая строка составного имени для проверки. - Возвращает:
- true, если n является CompoundName и является суффиксом этого составного имени, в противном случае false.
addAll
public Name addAll(Name suffix) throws InvalidNameException
Примечание к реализации: В настоящее время синтаксические свойства суффикса не используются или не проверяются. В будущем они могут быть использованы.
- Указано в:
-
addAllв интерфейсеName - Параметры:
-
suffix- Непустые компоненты для добавления. - Возвращает:
- Обновленное составное имя, а не новое. Не может быть null.
- Исключение:
-
InvalidNameException- Если суффикс не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышает количество компонентов).
addAll
public Name addAll(int posn, Name n) throws InvalidNameException
Примечание к реализации: В настоящее время синтаксические свойства суффикса не используются или не проверяются. В будущем они могут быть использованы.
- Указано в:
-
addAllв интерфейсеName - Параметры:
-
n- Непустые компоненты для добавления. -
posn- Индекс в этом имени, в котором следует добавить новые компоненты. Должно быть в диапазоне [0, size()]. - Возвращает:
- Обновленное составное имя, а не новое. Не может быть null.
- Исключение:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона. -
InvalidNameException- Если n не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышает количество компонентов).
add
public Name add(String comp) throws InvalidNameException
- Указано в:
-
addв интерфейсеName - Параметры:
-
comp- Непустой компонент для добавления. - Возвращает:
- Обновленное составное имя, а не новое. Не может быть null.
- Исключение:
-
InvalidNameException- Если добавление comp в конец имени нарушит синтаксис составного имени.
add
public Name add(int posn, String comp) throws InvalidNameException
- Указано в:
-
addв интерфейсеName - Параметры:
-
comp- Непустой компонент для добавления. -
posn- Индекс, в который следует добавить новый компонент. Должно быть в диапазоне [0, size()]. - Возвращает:
- Обновленное составное имя, а не новое. Не может быть null.
- Исключение:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона. -
InvalidNameException- Если добавление comp в указанную позицию нарушит синтаксис составного имени.
remove
public Object remove(int posn) throws InvalidNameException
- Указано в:
-
removeв интерфейсеName - Параметры:
-
posn- Индекс компонента для удаления. Должно быть в диапазоне [0, size()). - Возвращает:
- Удаленный компонент (строка).
- Исключение:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона (включает случай, когда составное имя пустое). -
InvalidNameException- Если удаление компонента нарушит синтаксис составного имени.
© 1993, 2021, 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/17/docs/api/java.naming/javax/naming/CompoundName.html