Spec-Zone.ru › OpenJDK 25

Класс 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 (« »).
  • Пробелы допускаются по обе стороны от ',', ';', '=' и '+'. Такие пробелы допускаются, но не создаются этим кодом и игнорируются при сравнении имён.
  • Допускаются строки AttributeValue, содержащие '=' или символы '#' (не в начальной позиции), если они не экранированы.

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

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

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

Компоненты имени LDAP, то есть RDN, пронумерованы. Индексы имени LDAP с n компонентами RDN находятся в диапазоне от 0 до n-1. Этот диапазон можно записать как [0,n). Самый правый RDN имеет индекс 0, а самый левый RDN — индекс 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 и описанном в описании класса.

Методы, объявленные в классе 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 в списке соответствует нумерации 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. Каждый элемент перечисления имеет класс String.

get

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

getRdn

public Rdn getRdn(int posn)
Получает RDN этого имени LDAP в виде Rdn.
Параметры:
posn — индекс RDN для получения, начиная с 0. Должен находиться в диапазоне [0,size()).
Возвращает:
RDN по индексу posn, не равный null.
Выбрасывает:
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, если rdns образуют префикс этого имени 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, если rdns образуют суффикс этого имени 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 суффикса Rdn, не равные null.
Возвращает:
Обновлённое имя (не новый экземпляр).

addAll

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

addAll

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

add

public Name add(String comp) throws InvalidNameException
Добавляет один компонент в конец этого имени LDAP.
Определяется в:
add в интерфейсе Name
Параметры:
comp — добавляемый компонент, не равный null.
Возвращает:
Обновлённое имя LdapName (не новый экземпляр). Не может быть равно null.
Выбрасывает:
InvalidNameException — если добавление comp в конец имени нарушает синтаксис имени.

add

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

add

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

add

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

remove

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

getRdns

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

clone

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

toString

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

equals

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

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

Переопределяет:
equals в классе Object
Параметры:
obj — объект для сравнения, который может быть равен null.
Возвращает:
true, если obj равен этому имени LDAP, иначе false.
См. также:
  • hashCode()

compareTo

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

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

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

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

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

hashCode

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/javax/naming/ldap/LdapName.html

Spec-Zone.ru

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