Класс 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 с указанным Object для определения порядка. |
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() |
Формирует строковое представление этого составного имени с использованием правил его синтаксиса. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
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()
equals
public boolean equals(Object obj)
Равенство также определяется с учетом синтаксиса этого составного имени. Реализация CompoundName по умолчанию использует свойства синтаксиса jndi.syntax.ignorecase и jndi.syntax.trimblanks при сравнении двух компонентов на равенство. Если регистр игнорируется, две строки с одинаковой последовательностью символов, но разным регистром считаются равными. Если пробелы удаляются, начальные и конечные пробелы игнорируются при сравнении.
Оба составных имени должны содержать одинаковое количество компонентов.
Примечание по реализации: в настоящее время свойства синтаксиса двух составных имен не сравниваются на равенство. Возможно, это будет реализовано в будущем.
hashCode
public int hashCode()
clone
public Object clone()
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— непустой объект для сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, если это Name меньше, равно или больше заданного Object.
- Исключения:
-
ClassCastException— если obj не является CompoundName. - См. также:
size
isEmpty
getAll
public Enumeration<String> getAll()
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 не используются при сравнении. Возможно, это будет реализовано в будущем.
- Определен в:
-
startsWithв интерфейсеName - Параметры:
-
n— возможно равное null составное имя для проверки. - Возвращает:
- true, если n является CompoundName и префиксом этого составного имени, иначе false.
endsWith
public boolean endsWith(Name n)
Примечание по реализации: в настоящее время свойства синтаксиса n не используются при сравнении. Возможно, это будет реализовано в будущем.
addAll
public Name addAll(Name suffix) throws InvalidNameException
Примечание по реализации: в настоящее время свойства синтаксиса suffix не используются и не проверяются. Возможно, это будет реализовано в будущем.
- Определен в:
-
addAllв интерфейсеName - Параметры:
-
suffix— непустые компоненты для добавления. - Возвращает:
- Обновленный CompoundName, а не новый объект. Не может быть null.
- Исключения:
-
InvalidNameException— если suffix не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышено допустимое количество компонентов).
addAll
public Name addAll(int posn, Name n) throws InvalidNameException
Примечание по реализации: в настоящее время свойства синтаксиса suffix не используются и не проверяются. Возможно, это будет реализовано в будущем.
- Определен в:
-
addAllв интерфейсеName - Параметры:
-
posn— индекс этого имени, в который следует добавить новые компоненты. Должен находиться в диапазоне [0,size()]. -
n— непустые компоненты для добавления. - Возвращает:
- Обновленный CompoundName, а не новый объект. Не может быть null.
- Исключения:
-
ArrayIndexOutOfBoundsException— если posn находится вне указанного диапазона. -
InvalidNameException— если n не является составным именем или добавление компонентов нарушает синтаксис этого составного имени (например, превышено допустимое количество компонентов).
add
public Name add(String comp) throws InvalidNameException
- Определен в:
-
addв интерфейсеName - Параметры:
-
comp— непустой компонент для добавления. - Возвращает:
- Обновленный CompoundName, а не новый объект. Не может быть null.
- Исключения:
-
InvalidNameException— если добавление comp в конец имени нарушает синтаксис составного имени.
add
public Name add(int posn, String comp) throws InvalidNameException
- Определен в:
-
addв интерфейсеName - Параметры:
-
posn— индекс для добавления нового компонента. Должен находиться в диапазоне [0,size()]. -
comp— непустой компонент для добавления. - Возвращает:
- Обновленный CompoundName, а не новый объект. Не может быть null.
- Исключения:
-
ArrayIndexOutOfBoundsException— если posn находится вне указанного диапазона. -
InvalidNameException— если добавление comp в указанную позицию нарушает синтаксис составного имени.
remove
public Object remove(int posn) throws InvalidNameException
- Определен в:
-
removeв интерфейсеName - Параметры:
-
posn— индекс удаляемого компонента. Должен находиться в диапазоне [0,size()). - Возвращает:
- Удаленный компонент (String).
- Исключения:
-
ArrayIndexOutOfBoundsException— если posn находится вне указанного диапазона (в том числе если составное имя пусто). -
InvalidNameException— если удаление компонента нарушает синтаксис составного имени.
© 1993, 2025, 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.