Класс 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<String> |
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- Возможно null объект для сравнения. - Возвращает:
- 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- Возможно null имя для проверки. - Возвращает:
- true, если n является CompositeName и является префиксом этого составного имени, false в противном случае.
endsWith
public boolean endsWith(Name n)
- Определено в:
-
endsWithв интерфейсеName - Параметры:
-
n- Возможно null имя для проверки. - Возвращает:
- true, если n является CompositeName и является суффиксом этого составного имени, false в противном случае.
addAll
public Name addAll(Name suffix) throws InvalidNameException
- Specified by:
-
addAllв интерфейсеName - Parameters:
-
suffix- Добавляемые компоненты, не равные null. - Returns:
- Обновленное CompositeName, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если суффикс не является составным именем.
addAll
public Name addAll(int posn, Name n) throws InvalidNameException
- Specified by:
-
addAllв интерфейсеName - Parameters:
-
n- Добавляемые компоненты, не равные null. -
posn- Индекс в этом имени, на котором нужно добавить новые компоненты. Должен быть в диапазоне [0, size()]. - Returns:
- Обновленное CompositeName, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если n не является составным именем. -
ArrayIndexOutOfBoundsException- Если posn находится вне заданного диапазона.
add
public Name add(String comp) throws InvalidNameException
- Specified by:
-
addв интерфейсеName - Parameters:
-
comp- Добавляемый компонент, не равный null. - Returns:
- Обновленное CompositeName, а не новое. Не может быть null.
- Throws:
-
InvalidNameException- Если добавление comp в конец имени нарушит синтаксис имени.
add
public Name add(int posn, String comp) throws InvalidNameException
- Specified by:
-
addв интерфейсеName - Parameters:
-
comp- Добавляемый компонент, не равный null. -
posn- Индекс, на котором нужно добавить новый компонент. Должен быть в диапазоне [0, size()]. - Returns:
- Обновленное CompositeName, а не новое. Не может быть null.
- Throws:
-
ArrayIndexOutOfBoundsException- Если posn находится вне заданного диапазона. -
InvalidNameException- Если добавление comp в указанную позицию нарушит синтаксис имени.
remove
public Object remove(int posn) throws InvalidNameException
- Specified by:
-
removeв интерфейсеName - Parameters:
-
posn- Индекс компонента для удаления. Должен быть в диапазоне [0, size()). - Returns:
- Удаленный компонент (String).
- Throws:
-
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/CompositeName.html