Spec-Zone.ru › OpenJDK 24

Класс CompositeName

java.lang.Object
javax.naming.CompositeName
Все реализованные интерфейсы:
Serializable, Cloneable, Comparable<Object>, Name
public class CompositeName extends Object implements Name
Этот класс представляет составное имя — последовательность имен компонентов, охватывающую несколько пространств имён. Каждый компонент — это строковое имя из пространства имён системы именования. Если компонент принадлежит иерархическому пространству имён, этот компонент можно далее разобрать на свои атомарные части, используя класс CompoundName.

Компоненты составного имени пронумерованы. Индексы составного имени с N компонентами находятся в диапазоне от 0 до N, но не включая 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)
Сравнивает это составное имя с указанным объектом для порядка.
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 - Возможный null объект для сравнения.
Возвращает:
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
Возвращает:
Непустая копия этого составного имени.
См. также:
  • Object.clone()

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,size()).
Возвращает:
Непустой компонент с индексом posn.
Исключения:
ArrayIndexOutOfBoundsException - если posn находится вне указанного диапазона.

getPrefix

public Name getPrefix(int posn)
Создаёт составное имя, компоненты которого представляют собой префикс компонентов в этом составном имени. Последующие изменения в этом составном имени не влияют на возвращённое имя.
Определено в:
getPrefix в интерфейсе Name
Параметры:
posn - Базовый индекс компонента для остановки. Должен быть в диапазоне [0,size()].
Возвращает:
Составное имя, состоящее из компонентов в диапазоне [0,posn).
Исключения:
ArrayIndexOutOfBoundsException - Если posn находится вне указанного диапазона.

getSuffix

public Name getSuffix(int posn)
Создаёт составное имя, компоненты которого представляют собой суффикс компонентов в этом составном имени. Последующие изменения в этом составном имени не влияют на возвращённое имя.
Определено в:
getSuffix в интерфейсе Name
Параметры:
posn - Базовый индекс компонента для начала. Должен быть в диапазоне [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 в противном случае.
END_OF_DOCUMENT_MARKER

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()).
Возвращает:
Удаленный компонент (строка).
Выбрасывает:
ArrayIndexOutOfBoundsException - Если posn находится вне указанного диапазона (включая случай, когда составное имя пусто).
InvalidNameException - Если удаление компонента нарушит синтаксис имени.

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.naming/javax/naming/CompositeName.html

Spec-Zone.ru

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