Класс CompositeName
- java.lang.Object
-
- javax.naming.CompositeName
- Все реализованные интерфейсы:
-
Serializable,Cloneable,Comparable<Object>,Name
public class CompositeName extends Object implements Name
Этот класс представляет составное имя — последовательность компонентов имен, охватывающих несколько пространств имен. Каждый компонент — это строковое имя из пространства имен системы именования. Если компонент происходит из иерархического пространства имен, этот компонент можно далее разобрать на атомарные части, используя класс CompoundName.
Компоненты составного имени пронумерованы. Индексы составного имени с 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
- См. также:
- Сериализованная форма
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
CompositeName() | Создаёт новое пустое составное имя. | |
CompositeName(String n) | Создаёт новый экземпляр составного имени, анализируя строку n с использованием синтаксиса составного имени (слева направо, разделённого слэшами). | |
protected | CompositeName(Enumeration<String> comps) | Создаёт новый экземпляр составного имени, используя компоненты, указанные в 'comps'. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Name | add(int posn,
String comp) | Добавляет один компонент в заданную позицию в этом составном имени. |
Name | add(String comp) | Добавляет один компонент в конец этого составного имени. |
Name | addAll(int posn,
Name n) | Добавляет компоненты составного имени — в порядке — в заданную позицию в этом составном имени. |
Name | addAll(Name suffix) | Добавляет компоненты составного имени — в порядке — в конец этого составного имени. |
Object | clone() | Генерирует копию этого составного имени. |
int | compareTo(Object obj) | Сравнивает это CompositeName с указанным объектом для порядка. |
boolean | endsWith(Name n) | Определяет, является ли составное имя суффиксом этого составного имени. |
boolean | equals(Object obj) | Определяет, равны ли два составных имени. |
String | get(int posn) | Возвращает компонент этого составного имени. |
Enumeration<String> | getAll() | Возвращает компоненты этого составного имени как перечисление строк. |
Name | getPrefix(int posn) | Создаёт составное имя, компоненты которого состоят из префикса компонентов в этом составном имени. |
Name | getSuffix(int posn) | Создаёт составное имя, компоненты которого состоят из суффикса компонентов в этом составном имени. |
int | hashCode() | Вычисляет хэш-код этого составного имени. |
boolean | isEmpty() | Определяет, пусто ли это составное имя. |
Object | remove(int posn) | Удаляет компонент из этого составного имени. |
int | size() | Возвращает количество компонентов в этом составном имени. |
boolean | startsWith(Name n) | Определяет, является ли составное имя префиксом этого составного имени. |
String | toString() | Генерирует строковое представление этого составного имени. |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Конструкторы
CompositeName
protected CompositeName(Enumeration<String> comps)
Создаёт новый экземпляр составного имени, используя компоненты, заданные 'comps'. Этот защищённый метод предназначен для использования подклассами CompositeName при переопределении методов, таких как clone(), getPrefix(), getSuffix().
- Параметры:
-
comps- Непустое перечисление, содержащее компоненты для нового составного имени. Каждый элемент — класса String. Перечисление будет использовано для извлечения элементов.
CompositeName
public CompositeName(String n)
throws InvalidNameException Создаёт новый экземпляр составного имени, анализируя строку n с использованием синтаксиса составного имени (слева направо, разделённого слэшами). Синтаксис составного имени подробно описан в описании класса.
- Параметры:
-
n- Непустая анализируемая строка. - Исключения:
-
InvalidNameException- Если у n неверный синтаксис составного имени.
CompositeName
public CompositeName()
Создаёт новое пустое составное имя. Такое имя возвращает true, когда вызывается isEmpty() на нём.
Методы
toString
public String toString()
Генерирует строковое представление этого составного имени. Строковое представление состоит из перечисления в порядке каждого компонента составного имени и разделения каждого компонента символом прямой косой черты. Цитаты и escape-символы применяются там, где это необходимо, в соответствии с синтаксисом JNDI, который описан в описании класса. Пустой компонент представляется пустой строкой. Сгенерированное таким образом строковое представление может быть передано конструктору CompositeName для создания нового эквивалентного составного имени.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Непустое строковое представление этого составного имени.
equals
public boolean equals(Object obj)
Определяет, равны ли два составных имени. Если obj равен null или не является составным именем, возвращается false. Два составных имени равны, если каждый компонент в одном равен соответствующему компоненту в другом. Это означает, что оба имеют одинаковое количество компонентов, и тест equals() каждого компонента по отношению к соответствующему компоненту в другом имени возвращает true.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Возможно, нулевой объект для сравнения. - Возвращает:
- true, если obj равен этому составному имени, false в противном случае.
- См. также:
hashCode()
hashCode
public int hashCode()
Вычисляет хэш-код этого составного имени. Хэш-код представляет собой сумму хэш-кодов отдельных компонентов этого составного имени.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Целое число, представляющее хэш-код этого имени.
- См. также:
equals(java.lang.Object)
compareTo
public int compareTo(Object obj)
Сравнивает это CompositeName с указанным Object для порядка. Возвращает отрицательное целое число, ноль или положительное целое число, если это имя меньше, равно или больше, чем данный Object.
Если obj равен null или не является экземпляром CompositeName, выбрасывается ClassCastException.
См. equals() для того, что означает равенство двух составных имен. Если два составных имени равны, возвращается 0.
Порядок составных имен следует лексикографическим правилам для сравнения строк, с тем расширением, что это применяется ко всем компонентам в составном имени. Эффект такой, как если бы все компоненты были выстроены в указанном порядке, и лексикографические правила применялись к двум выстроенным рядам. Если это составное имя «лексикографически» меньше, чем obj, возвращается отрицательное число. Если это составное имя «лексикографически» больше, чем obj, возвращается положительное число.
- Указано в:
-
compareToв интерфейсеComparable<Object> - Указано в:
-
compareToв интерфейсеName - Параметры:
-
obj- Непустой объект для сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, если это имя меньше, равно или больше, чем данный Object.
- Исключения:
-
ClassCastException- если obj не является CompositeName. - См. также:
Comparable.compareTo(Object)
clone
public Object clone()
Генерирует копию этого составного имени. Изменения в компонентах этого составного имени не повлияют на новую копию и наоборот.
- Указано в:
-
cloneв интерфейсеName - Переопределяет:
-
cloneв классеObject - Возвращает:
- Непустая копия этого составного имени.
- См. также:
Cloneable
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)
Определяет, является ли составное имя префиксом этого составного имени. Составное имя 'n' является префиксом, если оно равно getPrefix(n.size()) — другими словами, это составное имя начинается с 'n'. Если 'n' равно null или не является составным именем, возвращается false.
- Указано в:
-
startsWithв интерфейсеName - Параметры:
-
n- Возможно, нулевое имя для проверки. - Возвращает:
- true, если n является CompositeName и является префиксом этого составного имени, false в противном случае.
endsWith
public boolean endsWith(Name n)
Определяет, является ли составное имя суффиксом этого составного имени. Составное имя 'n' является суффиксом, если оно равно getSuffix(size()-n.size()) — другими словами, это составное имя заканчивается на 'n'. Если n равно null или не является составным именем, возвращается false.
- Указано в:
-
endsWithв интерфейсеName - Параметры:
-
n- Возможно, нулевое имя для проверки. - Возвращает:
- true, если n является CompositeName и является суффиксом этого составного имени, false в противном случае.
addAll
public Name addAll(Name suffix)
throws InvalidNameException Добавляет компоненты составного имени — по порядку — в конец этого составного имени.
- Указано в:
-
addAllв интерфейсеName - Параметры:
-
suffix- Непустые компоненты для добавления. - Возвращает:
- Обновленное CompositeName, а не новое. Не может быть null.
- Исключения:
-
InvalidNameException- Если suffix не является составным именем.
addAll
public Name addAll(int posn,
Name n)
throws InvalidNameException Добавляет компоненты составного имени — по порядку — в указанную позицию внутри этого составного имени. Компоненты этого составного имени в или после индекса первого нового компонента сдвигаются вверх (от индекса 0), чтобы разместить новые компоненты.
- Указано в:
-
addAllв интерфейсеName - Параметры:
-
n- Непустые компоненты для добавления. -
posn- Индекс в этом имени, в котором следует добавить новые компоненты. Должен быть в диапазоне [0,size()]. - Возвращает:
- Обновленное 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 Добавляет один компонент в указанную позицию внутри этого составного имени. Компоненты этого составного имени в или после индекса нового компонента сдвигаются вверх на один (от индекса 0), чтобы разместить новый компонент.
- Указано в:
-
addв интерфейсеName - Параметры:
-
comp- Непустой компонент для добавления. -
posn- Индекс, в котором следует добавить новый компонент. Должен быть в диапазоне [0,size()]. - Возвращает:
- Обновленное CompositeName, а не новое. Не может быть null.
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn находится за пределами указанного диапазона. -
InvalidNameException- Если добавление comp в указанную позицию нарушит синтаксис имени.
remove
public Object remove(int posn)
throws InvalidNameException Удаляет компонент из этого составного имени. Компонент этого составного имени в позиции 'posn' удаляется, а компоненты с индексами больше 'posn' сдвигаются вниз (в сторону индекса 0) на одну позицию.
- Определено в:
-
removeв интерфейсеName - Параметры:
-
posn- Индекс компонента для удаления. Должен быть в диапазоне [0,size()). - Возвращает:
- Удаленный компонент (строка).
- Исключения:
-
ArrayIndexOutOfBoundsException- Если posn находится вне указанного диапазона (включает случай, когда составное имя пусто). -
InvalidNameException- Если удаление компонента нарушит синтаксис имени.
© 1993, 2020, 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/11/docs/api/java.naming/javax/naming/CompositeName.html