Spec-Zone.ru › OpenJDK 24

Класс LdapName

java.lang.Object
javax.naming.ldap.LdapName
Все реализуемые интерфейсы:
Serializable, Cloneable, Comparable<Object>, Name
public class LdapName extends Object implements Name
Этот класс представляет собой имя по умолчанию, как указано в RFC 2253. Имя по умолчанию или DN состоит из упорядоченного списка компонентов, называемых относительными именами по умолчанию или RDN. Подробности синтаксиса DN описаны в RFC 2253.

Этот класс разрешает несколько неоднозначностей, встречающихся в RFC 2253 следующим образом:

  • RFC 2253 оставляет термин «пробелы» неопределенным. Вместо него используется символ ASCII-пробела 0x20 (« »).
  • Пробелы допускаются с обеих сторон символов ',', ';', '=', и '+'. Такие пробелы принимаются, но не генерируются этим кодом и игнорируются при сравнении имен.
  • Строки значений атрибутов, содержащие '=' или нелидирующие '#' символы (неэкранированные), принимаются.

Строковые имена, переданные в LdapName или возвращенные им, используют полный набор символов Unicode. Они также могут содержать символы, закодированные в UTF-8, где каждый байт представлен подстрокой из трех символов, такой как «\B4». Однако они не могут содержать символы, закодированные в UTF-8, где каждый байт представлен одним символом в строке: это привело бы к неоднозначности.

LdapName правильно проанализирует все допустимые имена, но не пытается обнаружить все возможные нарушения при анализе недопустимых имен. Он «щедр» в приеме недопустимых имен. «Допустимость» имени в конечном итоге определяется, когда оно предоставляется серверу LDAP, который может принять или отклонить имя на основе таких факторов, как информация о его схеме и соображения по межсетевому взаимодействию.

При проверке имен на равенство типы атрибутов, как двоичные, так и строковые значения, не учитывают регистр. Строковые значения с разными, но эквивалентными способами использования кавычек, экранирования или UTF8-шестнадцатеричного кодирования считаются равными. Порядок компонентов в многозначных RDN (например, "ou=Sales+cn=Bob") не существенен.

Компоненты имени LDAP, то есть RDN, пронумерованы. Индексы имени LDAP с n RDN находятся в диапазоне от 0 до n-1. Этот диапазон можно записать как [0,n). Самый правый RDN находится в индексе 0, а самый левый – в индексе n-1. Например, имя по умолчанию: "CN=Steve Kille, O=Isode Limited, C=GB" пронумеровано в следующем порядке, от 0 до 2: {C=GB, O=Isode Limited, CN=Steve Kille}. Пустое имя LDAP представлено пустым списком RDN.

Одновременный многопоточный доступ для чтения только для экземпляра LdapName не требует синхронизации.

Если не указано иное, передача null-аргумента в конструктор или метод в этом классе приведет к выбрасыванию NullPointerException.

С:
1.5
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
LdapName(String name)
Конструирует имя LDAP из заданного имени по умолчанию.
LdapName(List<Rdn> rdns)
Конструирует имя LDAP, используя проанализированные компоненты RDN.

Краткое описание методов

Модификатор и тип Метод Описание
Name add(int posn, String comp)
Добавляет один компонент в указанную позицию в этом имени LDAP.
Name add(int posn, Rdn comp)
Добавляет один RDN в указанную позицию в этом имени LDAP.
Name add(String comp)
Добавляет один компонент в конец этого имени LDAP.
Name add(Rdn comp)
Добавляет один RDN в конец этого имени LDAP.
Name addAll(int posn, List<Rdn> suffixRdns)
Добавляет RDN из имени – в порядке – в указанную позицию в этом имени.
Name addAll(int posn, Name suffix)
Добавляет компоненты имени – в порядке – в указанную позицию в этом имени.
Name addAll(List<Rdn> suffixRdns)
Добавляет RDN из имени – в порядке – в конец этого имени.
Name addAll(Name suffix)
Добавляет компоненты имени – в порядке – в конец этого имени.
Object clone()
Создаёт новую копию этого имени.
int compareTo(Object obj)
Сравнивает это LdapName с указанным объектом для упорядочивания.
boolean endsWith(List<Rdn> rdns)
Определяет, формирует ли указанная последовательность RDN суффикс этого имени LDAP.
boolean endsWith(Name n)
Определяет, заканчивается ли это имя LDAP указанным именем LDAP-суффикса.
boolean equals(Object obj)
Определяет, равны ли два имени LDAP.
String get(int posn)
Возвращает компонент этого имени LDAP как строку.
Enumeration<String> getAll()
Возвращает компоненты этого имени в виде перечисления строк.
Name getPrefix(int posn)
Создаёт имя, компоненты которого состоят из префикса компонентов этого имени LDAP.
Rdn getRdn(int posn)
Возвращает RDN этого имени LDAP в виде Rdn.
List<Rdn> getRdns()
Возвращает список относительных имен по умолчанию.
Name getSuffix(int posn)
Создаёт имя, компоненты которого состоят из суффикса компонентов в этом имени LDAP.
int hashCode()
Вычисляет хэш-код этого имени LDAP.
boolean isEmpty()
Определяет, пусто ли это имя LDAP.
Object remove(int posn)
Удаляет компонент из этого имени LDAP.
int size()
Возвращает количество компонентов в этом имени LDAP.
boolean startsWith(List<Rdn> rdns)
Определяет, формирует ли указанная последовательность RDN префикс этого имени LDAP.
boolean startsWith(Name n)
Определяет, начинается ли это имя LDAP с указанного префикса имени LDAP.
String toString()
Возвращает строковое представление этого имени LDAP в формате, определенном в RFC 2253 и описанном в описании класса.

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

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

LdapName

public LdapName(String name) throws InvalidNameException
Создаёт имя LDAP из заданного полных имени.
Параметры:
name - Это полное имя, не равное null, отформатированное в соответствии с правилами, определёнными в RFC 2253.
Исключения:
InvalidNameException - если обнаружено нарушение синтаксиса.
См. также:
  • Rdn.escapeValue(Object value)

LdapName

public LdapName(List<Rdn> rdns)
Создаёт имя LDAP, используя обработанные компоненты RDN.

Индексация RDN в списке следует порядку, описанному в описании класса.

Параметры:
rdns - Список компонентов RDN, формирующих имя LDAP. Список не может быть null.

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

size

public int size()
Возвращает количество компонентов в этом имени LDAP.
Определено в:
size в интерфейсе Name
Возвращает:
Неотрицательное число компонентов в этом имени LDAP.

isEmpty

public boolean isEmpty()
Определяет, пусто ли это имя LDAP. Пустое имя имеет ноль компонентов.
Определено в:
isEmpty в интерфейсе Name
Возвращает:
true, если имя LDAP пустое, иначе false.

getAll

public Enumeration<String> getAll()
Возвращает компоненты этого имени как перечисление строк. Эффект обновлений этого имени на это перечисление не определён. Если имя имеет ноль компонентов, возвращается пустое (не null) перечисление. Порядок компонентов, возвращаемых перечислением, совпадает с порядком, в котором компоненты пронумерованы, как описано в описании класса.
Определено в:
getAll в интерфейсе Name
Возвращает:
Не null перечисление компонентов этого имени LDAP. Каждый элемент перечисления является строкой.

get

public String get(int posn)
Возвращает компонент этого имени LDAP в виде строки.
Определено в:
get в интерфейсе Name
Параметры:
posn - Индекс компонента для извлечения (от 0). Должен находиться в диапазоне [0, size()).
Возвращает:
Не null компонент по индексу posn.
Исключения:
IndexOutOfBoundsException - если posn выходит за указанный диапазон.

getRdn

public Rdn getRdn(int posn)
Возвращает RDN этого имени LDAP в виде объекта Rdn.
Параметры:
posn - Индекс RDN для извлечения (от 0). Должен находиться в диапазоне [0, size()).
Возвращает:
Не null RDN по индексу posn.
Исключения:
IndexOutOfBoundsException - если posn выходит за указанный диапазон.

getPrefix

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

getSuffix

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

startsWith

public boolean startsWith(Name n)
Определяет, начинается ли это имя LDAP с указанного префикса имени LDAP. Имя n является префиксом, если оно равно getPrefix(n.size()) - другими словами, это имя LDAP начинается с 'n'. Если n равно null или не является именем в формате RFC2253, как описано в описании класса, возвращается false.
Определено в:
startsWith в интерфейсе Name
Параметры:
n - Имя LDAP для проверки.
Возвращает:
true, если n является префиксом этого имени LDAP, иначе false.
См. также:
  • getPrefix(int posn)

startsWith

public boolean startsWith(List<Rdn> rdns)
Определяет, образует ли указанная последовательность RDN префикс этого имени LDAP. Возвращает true, если это имя LdapName имеет длину не меньше, чем rdns, и для каждой позиции p в диапазоне [0, rdns.size()) компонент getRdn(p) соответствует rdns.get(p). В противном случае возвращается false. Если rdns равно null, возвращается false.
Параметры:
rdns - Последовательность RDN для проверки.
Возвращает:
true, если Rdn образуют префикс этого имени LDAP, иначе false.

endsWith

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

endsWith

public boolean endsWith(List<Rdn> rdns)
Определяет, образует ли указанная последовательность RDN суффикс этого имени LDAP. Возвращает true, если это имя LdapName имеет длину не меньше, чем rdns, и для каждой позиции p в диапазоне [size() - rdns.size(), size()) компонент getRdn(p) соответствует rdns.get(p). В противном случае возвращается false. Если rdns равно null, возвращается false.
Параметры:
rdns - Последовательность RDN для проверки.
Возвращает:
true, если Rdn образуют суффикс этого имени LDAP, иначе false.

addAll

public Name addAll(Name suffix) throws InvalidNameException
Добавляет компоненты имени в конец этого имени в заданном порядке.
Определено в:
addAll в интерфейсе Name
Параметры:
suffix - Компоненты для добавления (не null).
Возвращает:
Обновлённое имя (не новый экземпляр).
Исключения:
InvalidNameException - если suffix не является допустимым именем LDAP или если добавление компонентов нарушит синтаксические правила этого имени LDAP.

addAll

public Name addAll(List<Rdn> suffixRdns)
Добавляет RDN имени в конец этого имени в заданном порядке.
Параметры:
suffixRdns - Суффикс Rdn для добавления (не null).
Возвращает:
Обновлённое имя (не новый экземпляр).

addAll

public Name addAll(int posn, Name suffix) throws InvalidNameException
Добавляет компоненты имени в указанную позицию в этом имени в заданном порядке. Компоненты этого имени LDAP с индексом, равным или большим индекса первого нового компонента, сдвигаются вверх, чтобы вместить новые компоненты.
Определено в:
addAll в интерфейсе Name
Параметры:
posn - Индекс, на который нужно добавить новый компонент. Должен находиться в диапазоне [0, size()].
suffix - Компоненты для добавления (не null).
Возвращает:
Обновлённое имя (не новый экземпляр).
Исключения:
InvalidNameException - если suffix не является допустимым именем LDAP или если добавление компонентов нарушит синтаксические правила этого имени LDAP.
IndexOutOfBoundsException - Если posn выходит за указанный диапазон.
END_OF_DOCUMENT_MARKER

addAll

public Name addAll(int posn, List<Rdn> suffixRdns)
Добавляет RDNы имени — в порядке следования — в указанную позицию в этом имени. RDNы этого имени LDAP перед и после индекса (если таковой имеется) первого нового RDN смещаются вверх (в сторону от индекса 0), чтобы вместить новые RDNы.
Parameters:
posn - Индекс, в который добавить суффиксные RDNы. Должен находиться в диапазоне [0,size()].
suffixRdns - Непустой суффиксные Rdnы для добавления.
Returns:
Обновлённое имя (не новый экземпляр).
Throws:
IndexOutOfBoundsException - Если posn находится вне указанного диапазона.

add

public Name add(String comp) throws InvalidNameException
Добавляет один компонент в конец имени LDAP.
Specified by:
add в интерфейсе Name
Parameters:
comp - Непустой компонент для добавления.
Returns:
Обновлённое имя LdapName, не новый экземпляр. Не может быть null.
Throws:
InvalidNameException - Если добавление comp в конец имени нарушит синтаксис имени.

add

public Name add(Rdn comp)
Добавляет один RDN в конец этого имени LDAP.
Parameters:
comp - Непустой RDN для добавления.
Returns:
Обновлённое имя LdapName, не новый экземпляр. Не может быть null.

add

public Name add(int posn, String comp) throws InvalidNameException
Добавляет один компонент в указанную позицию в этом имени LDAP. Компоненты этого имени LDAP на или после индекса (если таковой имеется) нового компонента смещаются вверх на единицу (в сторону от индекса 0), чтобы вместить новый компонент.
Specified by:
add в интерфейсе Name
Parameters:
posn - Индекс, в который добавить новый компонент. Должен находиться в диапазоне [0,size()].
comp - Непустой компонент для добавления.
Returns:
Обновлённое имя LdapName, не новый экземпляр. Не может быть null.
Throws:
IndexOutOfBoundsException - Если posn находится вне указанного диапазона.
InvalidNameException - Если добавление comp в указанную позицию нарушит синтаксис имени.

add

public Name add(int posn, Rdn comp)
Добавляет один RDN в указанную позицию в этом имени LDAP. RDNы этого имени LDAP на или после индекса (если таковой имеется) нового RDN смещаются вверх на единицу (в сторону от индекса 0), чтобы вместить новый RDN.
Parameters:
posn - Индекс, в который добавить новый RDN. Должен находиться в диапазоне [0,size()].
comp - Непустой RDN для добавления.
Returns:
Обновлённое имя LdapName, не новый экземпляр. Не может быть null.
Throws:
IndexOutOfBoundsException - Если posn находится вне указанного диапазона.

remove

public Object remove(int posn) throws InvalidNameException
Удаляет компонент из этого имени LDAP. Компонент этого имени в указанной позиции удаляется. Компоненты с индексами, большими, чем эта позиция (если таковые имеются), смещаются вниз (в сторону от индекса 0) на единицу.
Specified by:
remove в интерфейсе Name
Parameters:
posn - Индекс компонента для удаления. Должен находиться в диапазоне [0,size()).
Returns:
Удаленный компонент (строка).
Throws:
IndexOutOfBoundsException - если posn находится вне указанного диапазона.
InvalidNameException - если удаление компонента нарушит правила синтаксиса имени.

getRdns

public List<Rdn> getRdns()
Возвращает список относительных отличительных имён. Содержимое списка неизменяемо. Нумерация RDN в возвращаемом списке соответствует нумерации RDN, описанной в описании класса. Если имя имеет ноль компонентов, возвращается пустой список.
Returns:
Имя в виде списка RDN, которые являются экземплярами класса Rdn.

clone

public Object clone()
Создаёт новую копию этого имени. Последующие изменения компонентов этого имени не повлияют на новую копию, и наоборот.
Specified by:
clone в интерфейсе Name
Overrides:
clone в классе Object
Returns:
Копия этого имени LDAP.
See Also:
  • Object.clone()

toString

public String toString()
Возвращает строковое представление этого имени LDAP в формате, определённом в RFC 2253 и описанном в описании класса. Если имя имеет ноль компонентов, возвращается пустая строка.
Overrides:
toString в классе Object
Returns:
Строковое представление LdapName.

equals

public boolean equals(Object obj)
Определяет, равны ли два имени LDAP. Если obj равно null или не является именем LDAP, возвращается false.

Два имени LDAP равны, если каждый RDN в одном равен соответствующему RDN в другом. Это подразумевает, что оба имеют одинаковое количество RDN и каждый тест equals() RDN против соответствующего RDN в другом имени возвращает true. См. Rdn.equals(Object obj) для определения равенства RDN.

Overrides:
equals в классе Object
Parameters:
obj - Возможный null объект для сравнения.
Returns:
true, если obj равен этому имени LDAP, false в противном случае.
See Also:
  • hashCode()

compareTo

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

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

Порядок имён LDAP следует лексикографическим правилам сравнения строк, с расширением, что это относится ко всем RDN в имени LDAP. Все RDN выстраиваются в соответствии с их порядком и сравниваются лексикографически. См. Rdn.compareTo(Object obj) для правил сравнения RDN.

Если это имя LDAP лексикографически меньше obj, возвращается отрицательное число. Если это имя LDAP лексикографически больше obj, возвращается положительное число.

Specified by:
compareTo в интерфейсе Comparable<Object>
Specified by:
compareTo в интерфейсе Name
Parameters:
obj - Экземпляр LdapName для сравнения (не null).
Returns:
Отрицательное целое число, ноль или положительное целое число, если это имя меньше, равно или больше, чем заданный объект.
Throws:
ClassCastException - если obj равно null или не является LdapName.
See Also:
  • Comparable.compareTo(Object)

hashCode

public int hashCode()
Вычисляет хеш-код этого имени LDAP. Хеш-код — это сумма хеш-кодов отдельных RDN этого имени.
Overrides:
hashCode в классе Object
Returns:
Целое число, представляющее хеш-код этого имени.
See Also:
  • equals(java.lang.Object)

© 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/ldap/LdapName.html

Spec-Zone.ru

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