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