Spec-Zone.ru › OpenJDK 27

Класс 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)
Строковое имя 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)
CompositeName(Enumeration<String> comps)
Модификатор Конструктор Описание
Создает новое пустое составное имя.
Создает новый экземпляр составного имени, разбирая строку n в соответствии с синтаксисом составного имени (слева направо, разделитель — косая черта).
protected
Создает новый экземпляр составного имени, используя компоненты, указанные в '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 с указанным Object для определения порядка.
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()
Создает строковое представление этого составного имени.

Методы, объявленные в классе 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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

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()
Создает новое пустое составное имя. При вызове isEmpty() для такого имени возвращается true.

Подробное описание методов

toString

public String toString()
Создает строковое представление этого составного имени. Строковое представление формируется путем перечисления всех компонентов составного имени по порядку с разделением каждого компонента символом косой черты. В соответствии с синтаксисом JNDI, описанным в описании класса, при необходимости используются кавычки и символы экранирования. Пустой компонент представляется пустой строкой. Полученное таким образом строковое представление можно передать конструктору CompositeName, чтобы создать новое эквивалентное составное имя.
Переопределяет:
toString в классе Object
Возвращает:
Непустое строковое представление этого составного имени.

equals

public boolean equals(Object obj)
Определяет, равны ли два составных имени. Если obj равен null или не является составным именем, возвращается false. Два составных имени равны, если каждый компонент одного равен соответствующему компоненту другого. Это означает, что оба имени содержат одинаковое число компонентов, а проверка equals() для каждого компонента и соответствующего компонента другого имени возвращает true.
Переопределяет:
equals в классе Object
Параметры:
obj — объект, возможно равный null, для сравнения.
Возвращает:
true, если obj равен этому составному имени; в противном случае — false.
См. также:
  • hashCode()

hashCode

public int hashCode()
Вычисляет хеш-код этого составного имени. Хеш-код равен сумме хеш-кодов отдельных компонентов этого составного имени.
Переопределяет:
hashCode в классе Object
Возвращает:
Значение int, представляющее хеш-код этого имени.
См. также:
  • equals(Object)

compareTo

public int compareTo(Object obj)
Сравнивает это CompositeName с указанным Object для определения порядка. Возвращает отрицательное целое число, ноль или положительное целое число, если это Name меньше, равно или больше заданного Object соответственно.

Если obj равен null или не является экземпляром CompositeName, выбрасывается ClassCastException.

Значение равенства двух составных имен описано в equals(). Если два составных имени равны, возвращается 0.

Порядок составных имен определяется лексикографическими правилами сравнения строк, распространенными на все компоненты составного имени. Это эквивалентно расположению всех компонентов в заданном порядке и применению лексикографического сравнения к двум полученным последовательностям. Если это составное имя «лексикографически» меньше obj, возвращается отрицательное число. Если это составное имя «лексикографически» больше obj, возвращается положительное число.

Определено в:
compareTo в интерфейсе Comparable<Object>
Определено в:
compareTo в интерфейсе Name
Параметры:
obj — непустой объект для сравнения.
Возвращает:
отрицательное целое число, ноль или положительное целое число, если это Name меньше, равно или больше заданного Object соответственно.
Исключения:
ClassCastException — если obj не является CompositeName.
См. также:
  • Comparable.compareTo(Object)

clone

public Object clone()
Создает копию этого составного имени. Изменения компонентов этого составного имени не повлияют на новую копию, и наоборот.
Определено в:
clone в интерфейсе Name
Переопределяет:
clone в классе Object
Возвращает:
Непустую копию этого составного имени.
См. также:
  • Object.clone()

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 — имя, возможно равное null, для проверки.
Возвращает:
true, если n является CompositeName и префиксом этого составного имени; в противном случае — false.

endsWith

public boolean endsWith(Name n)
Определяет, является ли составное имя суффиксом этого составного имени. Составное имя 'n' является суффиксом, если оно равно getSuffix(size()-n.size()), то есть если это составное имя заканчивается на 'n'. Если n равно null или не является составным именем, возвращается false.
Определено в:
endsWith в интерфейсе Name
Параметры:
n — имя, возможно равное null, для проверки.
Возвращает:
true, если n является CompositeName и суффиксом этого составного имени; в противном случае — false.

addAll

public Name addAll(Name suffix) throws InvalidNameException
Добавляет компоненты составного имени в конец этого составного имени, сохраняя их порядок.
Определено в:
addAll в интерфейсе Name
Параметры:
suffix — непустые компоненты для добавления.
Возвращает:
Обновленный CompositeName, а не новый объект. Не может быть null.
Исключения:
InvalidNameException — если суффикс не является составным именем.

addAll

public Name addAll(int posn, Name n) throws InvalidNameException
Добавляет компоненты составного имени в указанную позицию этого составного имени, сохраняя их порядок. Компоненты этого составного имени, находящиеся на индексе первого нового компонента или после него, сдвигаются вверх (от индекса 0), чтобы освободить место для новых компонентов.
Определено в:
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
Добавляет один компонент в указанную позицию этого составного имени. Компоненты этого составного имени, находящиеся на индексе нового компонента или после него, сдвигаются на одну позицию вверх (от индекса 0), чтобы освободить место для нового компонента.
Определено в:
add в интерфейсе Name
Параметры:
posn — индекс, по которому нужно добавить новый компонент. Должен находиться в диапазоне [0,size()].
comp — непустой компонент для добавления.
Возвращает:
Обновленный CompositeName, а не новый объект. Не может быть null.
Исключения:
ArrayIndexOutOfBoundsException — если posn находится вне указанного диапазона.
InvalidNameException — если добавление comp в указанную позицию нарушает синтаксис имени.

remove

public Object remove(int posn) throws InvalidNameException
Удаляет компонент из этого составного имени. Компонент этого составного имени в позиции 'posn' удаляется, а компоненты с индексами больше 'posn' сдвигаются на одну позицию вниз (к индексу 0).
Определено в:
remove в интерфейсе Name
Параметры:
posn — индекс удаляемого компонента. Должен находиться в диапазоне [0,size()).
Возвращает:
Удаленный компонент (String).
Исключения:
ArrayIndexOutOfBoundsException — если posn находится вне указанного диапазона (включая случай, когда составное имя пусто).
InvalidNameException — если удаление компонента нарушает синтаксис имени.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API