Класс CompositeName
- Все реализуемые интерфейсы:
Serializable, Cloneable, Comparable<Object>, Name
public class CompositeName extends Object implements Name
Компоненты составного имени пронумерованы. Индексы составного имени из N компонентов находятся в диапазоне от 0 включительно до N не включительно. Этот диапазон можно записать как [0,N). Наиболее значимый компонент имеет индекс 0. Пустое составное имя не содержит компонентов.
Синтаксис составных имен JNDI
JNDI определяет стандартное строковое представление составных имен. Оно представляет собой конкатенацию компонентов составного имени слева направо с использованием разделителя компонентов (символа косой черты (/)) между компонентами. Синтаксис JNDI определяет следующие метасимволы:- символ экранирования (обратная косая черта \),
- кавычки (одинарные (') и двойные (")), и
- разделитель компонентов (символ косой черты (/)).
При сравнении двух составных имен регистр символов имеет значение.
Начальный разделитель компонентов (строка составного имени начинается с разделителя) обозначает начальный пустой компонент (компонент, состоящий из пустой строки). Завершающий разделитель компонентов (строка составного имени заканчивается разделителем) обозначает конечный пустой компонент. Соседние разделители компонентов обозначают пустой компонент.
Примеры составных имен
В этой таблице приведены примеры некоторых составных имен. В каждой строке показана строковая форма составного имени и соответствующая ей структурная форма (CompositeName). | Строковое имя | CompositeName |
|---|---|
| "" | {} (пустое имя == new CompositeName("") == new CompositeName()) |
| "x" | {"x"} |
| "x/y" | {"x", "y"} |
| "x/" | {"x", ""} |
| "/x" | {"", "x"} |
| "/" | {""} |
| "//" | {"", ""} |
| "/x/" | {"", "x", ""} |
| "x//y" | {"x", "", "y"} |
Примеры объединения
Ниже приведены примеры объединения. В правом столбце показано объединение строковых составных имен, а в левом — объединение соответствующихCompositeName. Обратите внимание: для объединения строковых форм двух составных имен достаточно просто соединить их строки. | Строковые имена | Составные имена |
|---|---|
| "x/y" + "/" = x/y/ | {"x", "y"} + {""} = {"x", "y", ""} |
| "" + "x" = "x" | {} + {"x"} = {"x"} |
| "/" + "x" = "/x" | {""} + {"x"} = {"", "x"} |
| "x" + "" + "" = "x" | {"x"} + {} + {} = {"x"} |
Многопоточный доступ
ЭкземплярCompositeName не синхронизирован для одновременного многопоточного доступа. Потоки, которые пытаются получить доступ к CompositeName и изменить его, должны блокировать объект.- Начиная с:
- 1.3
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
| Создает новое пустое составное имя. |
||
| Создает новый экземпляр составного имени, разбирая строку n в соответствии с синтаксисом составного имени (слева направо, разделитель — косая черта). |
||
protected |
Создает новый экземпляр составного имени, используя компоненты, указанные в 'comps'. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Name |
add |
Добавляет один компонент в указанную позицию этого составного имени. |
Name |
add |
Добавляет один компонент в конец этого составного имени. |
Name |
addAll |
Добавляет компоненты составного имени в указанную позицию этого составного имени, сохраняя их порядок. |
Name |
addAll |
Добавляет компоненты составного имени в конец этого составного имени, сохраняя их порядок. |
Object |
clone() |
Создает копию этого составного имени. |
int |
compareTo |
Сравнивает это CompositeName с указанным Object для определения порядка. |
boolean |
endsWith |
Определяет, является ли составное имя суффиксом этого составного имени. |
boolean |
equals |
Определяет, равны ли два составных имени. |
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() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
CompositeName
protected CompositeName(Enumeration<String> comps)
- Параметры:
-
comps— непустое перечисление, содержащее компоненты нового составного имени. Каждый элемент имеет класс String. Элементы будут извлечены из перечисления, в результате чего оно будет исчерпано.
CompositeName
public CompositeName(String n) throws InvalidNameException
- Параметры:
-
n— непустая строка для разбора. - Исключения:
-
InvalidNameException— если строка n имеет недопустимый синтаксис составного имени.
CompositeName
public CompositeName()
isEmpty() для такого имени возвращается true.Подробное описание методов
toString
public String toString()
equals
public boolean equals(Object obj)
hashCode
compareTo
public int compareTo(Object obj)
Если obj равен null или не является экземпляром CompositeName, выбрасывается ClassCastException.
Значение равенства двух составных имен описано в equals(). Если два составных имени равны, возвращается 0.
Порядок составных имен определяется лексикографическими правилами сравнения строк, распространенными на все компоненты составного имени. Это эквивалентно расположению всех компонентов в заданном порядке и применению лексикографического сравнения к двум полученным последовательностям. Если это составное имя «лексикографически» меньше obj, возвращается отрицательное число. Если это составное имя «лексикографически» больше obj, возвращается положительное число.
- Определено в:
-
compareToв интерфейсеComparable<Object> - Определено в:
-
compareToв интерфейсеName - Параметры:
-
obj— непустой объект для сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, если это Name меньше, равно или больше заданного Object соответственно.
- Исключения:
-
ClassCastException— если obj не является CompositeName. - См. также:
clone
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)
- Определено в:
-
startsWithв интерфейсеName - Параметры:
-
n— имя, возможно равное null, для проверки. - Возвращает:
- true, если n является CompositeName и префиксом этого составного имени; в противном случае — false.
endsWith
public boolean endsWith(Name n)
addAll
public Name addAll(Name suffix) throws InvalidNameException
- Определено в:
-
addAllв интерфейсеName - Параметры:
-
suffix— непустые компоненты для добавления. - Возвращает:
- Обновленный CompositeName, а не новый объект. Не может быть null.
- Исключения:
-
InvalidNameException— если суффикс не является составным именем.
addAll
public Name addAll(int posn, Name n) throws InvalidNameException
- Определено в:
-
addAllв интерфейсеName - Параметры:
-
posn— индекс в этом имени, по которому нужно добавить новые компоненты. Должен находиться в диапазоне [0,size()]. -
n— непустые компоненты для добавления. - Возвращает:
- Обновленный CompositeName, а не новый объект. Не может быть null.
- Исключения:
-
InvalidNameException— если n не является составным именем. -
ArrayIndexOutOfBoundsException— если posn находится вне указанного диапазона.
add
public Name add(String comp) throws InvalidNameException
- Определено в:
-
addв интерфейсеName - Параметры:
-
comp— непустой компонент для добавления. - Возвращает:
- Обновленный CompositeName, а не новый объект. Не может быть null.
- Исключения:
-
InvalidNameException— если добавление comp в конец имени нарушает синтаксис имени.
add
public Name add(int posn, String comp) throws InvalidNameException
- Определено в:
-
addв интерфейсеName - Параметры:
-
posn— индекс, по которому нужно добавить новый компонент. Должен находиться в диапазоне [0,size()]. -
comp— непустой компонент для добавления. - Возвращает:
- Обновленный CompositeName, а не новый объект. Не может быть 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.