Spec-Zone.ru › OpenJDK 27

Класс 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, а самый левый — индекс 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
Модификатор и тип Метод Описание
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

LdapName

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

LdapName

public LdapName(List<Rdn> rdns)
Создает имя LDAP из его разобранных компонентов RDN.

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

Параметры:
rdns — ненулевой список Rdn, образующих это имя LDAP.

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

size

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

isEmpty

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

getAll

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

get

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

getRdn

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

addAll

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

addAll

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

add

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

add

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

add

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

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

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

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

Определено в:
compareTo в интерфейсе Comparable<Object>
Определено в:
compareTo в интерфейсе Name
Параметры:
obj — ненулевой экземпляр LdapName для сравнения.
Возвращает:
Отрицательное целое число, ноль или положительное целое число, если это Name меньше, равно или больше указанного 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, 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