Класс 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 с указанным объектом для упорядочивания. |
boolean |
endsWith |
Определяет, является ли составное имя суффиксом этого составного имени. |
boolean |
equals |
Определяет, равны ли два составных имени. |
String |
get |
Возвращает компонент этого составного имени. |
Enumeration |
getAll() |
Возвращает компоненты этого составного имени в виде перечисления строк. |
Name |
getPrefix |
Создаёт составное имя, компоненты которого состоят из префикса компонентов в этом составном имени. |
Name |
getSuffix |
Создаёт составное имя, компоненты которого состоят из суффикса компонентов в этом составном имени. |
int |
hashCode() |
Вычисляет хэш-код этого составного имени. |
boolean |
isEmpty() |
Определяет, пусто ли это составное имя. |
Object |
remove |
Удаляет компонент из этого составного имени. |
int |
size() |
Возвращает количество компонентов в этом составном имени. |
boolean |
startsWith |
Определяет, является ли составное имя префиксом этого составного имени. |
String |
toString() |
Генерирует строковое представление этого составного имени. |
Подробное описание конструкторов
CompositeName
protected CompositeName(Enumeration<String> comps)
- Параметры:
-
comps- Непустой перечислитель, содержащий компоненты нового составного имени. Каждый элемент является объектом класса String. Перечислитель будет обработан для извлечения его элементов.
CompositeName
public CompositeName(String n) throws InvalidNameException
- Параметры:
-
n- Непустая строка для разбора. - Исключения:
-
InvalidNameException- Если у n неверный синтаксис составного имени.
CompositeName
public CompositeName()
isEmpty() вызывается на нём.Подробное описание методов
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Непустое строковое представление этого составного имени.
equals
public boolean equals(Object obj)
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Возможный объект для сравнения. - Возвращает:
- true, если obj равен этому составному имени, false в противном случае.
- См. также:
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Целое число, представляющее код хэша этого имени.
- См. также:
compareTo
public int compareTo(Object obj)
Если obj равен null или не является экземпляром CompositeName, выбрасывается ClassCastException.
См. equals() для того, что означает равенство двух составных имён. Если два составных имени равны, возвращается 0.
Порядок составных имён следует лексикографическим правилам сравнения строк, с расширением, что это применяется ко всем компонентам составного имени. Эффект такой, как если бы все компоненты были выстроены в указанном порядке, и лексикографические правила применялись к двум упорядоченным наборам. Если это составное имя "лексикографически" меньше obj, возвращается отрицательное число. Если это составное имя "лексикографически" больше obj, возвращается положительное число.
- Определено в:
-
compareToв интерфейсеComparable<Object> - Определено в:
-
compareToв интерфейсеName - Параметры:
-
obj- Непустой объект для сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, если это имя меньше, равно или больше, чем заданный объект соответственно.
- Исключения:
-
ClassCastException- если obj не является CompositeName. - См. также:
clone
public Object clone()
- Определено в:
-
cloneв интерфейсеName - Переопределяет:
-
cloneв классеObject - Возвращает:
- Непустая копия этого составного имени.
- См. также:
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)
- Определено в:
-
startsWithв интерфейсеName - Параметры:
-
n- Возможное имя для проверки. - Возвращает:
- true, если n является CompositeName и является префиксом этого составного имени, false в противном случае.
endsWith
public boolean endsWith(Name n)
- Определено в:
-
endsWithв интерфейсеName - Параметры:
-
n- Возможная имя для проверки. - Возвращает:
- true, если n является CompositeName и является суффиксом этого составного имени, false в противном случае.
addAll
public Name addAll(Name suffix) throws InvalidNameException
- Specified by:
-
addAllin interfaceName - Parameters:
-
suffix- Добавляемые компоненты, не равные null. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если суффикс не является составным именем.
addAll
public Name addAll(int posn, Name n) throws InvalidNameException
- Specified by:
-
addAllin interfaceName - Parameters:
-
posn- Индекс в этом имени, в который нужно добавить новые компоненты. Должен быть в диапазоне [0, size()]. -
n- Добавляемые компоненты, не равные null. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если n не является составным именем. -
ArrayIndexOutOfBoundsException- Если posn выходит за заданный диапазон.
add
public Name add(String comp) throws InvalidNameException
- Specified by:
-
addin interfaceName - Parameters:
-
comp- Добавляемый компонент, не равный null. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если добавление comp в конец имени нарушает синтаксис имени.
add
public Name add(int posn, String comp) throws InvalidNameException
- Specified by:
-
addin interfaceName - Parameters:
-
posn- Индекс, в который нужно добавить новый компонент. Должен быть в диапазоне [0, size()]. -
comp- Добавляемый компонент, не равный null. - Returns:
- Обновленное составное имя, а не новое. Не может быть null.
- Throws:
-
ArrayIndexOutOfBoundsException- Если posn выходит за заданный диапазон. -
InvalidNameException- Если добавление comp в указанную позицию нарушает синтаксис имени.
remove
public Object remove(int posn) throws InvalidNameException
- Specified by:
-
removein interfaceName - 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/CompositeName.html