Класс LdapName
- Все реализованные интерфейсы:
Serializable, Cloneable, Comparable<Object>, Name
public class LdapName extends Object implements Name
Этот класс разрешает некоторые неоднозначности 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 |
Создаёт имя LDAP из указанного отличительного имени. |
LdapName |
Создаёт имя LDAP из его разобранных компонентов RDN. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Name |
add |
Добавляет один компонент в указанную позицию этого имени LDAP. |
Name |
add |
Добавляет один RDN в указанную позицию этого имени LDAP. |
Name |
add |
Добавляет один компонент в конец этого имени LDAP. |
Name |
add |
Добавляет один RDN в конец этого имени LDAP. |
Name |
addAll |
Добавляет RDN имени в указанную позицию этого имени, сохраняя их порядок. |
Name |
addAll |
Добавляет компоненты имени в указанную позицию этого имени, сохраняя их порядок. |
Name |
addAll |
Добавляет RDN имени в конец этого имени, сохраняя их порядок. |
Name |
addAll |
Добавляет компоненты имени в конец этого имени, сохраняя их порядок. |
Object |
clone() |
Создаёт новую копию этого имени. |
int |
compareTo |
Сравнивает это имя LdapName с указанным объектом на предмет порядка. |
boolean |
endsWith |
Определяет, образует ли указанная последовательность RDN суффикс этого имени LDAP. |
boolean |
endsWith |
Определяет, заканчивается ли это имя LDAP указанным суффиксом имени LDAP. |
boolean |
equals |
Определяет, равны ли два имени LDAP. |
String |
get |
Возвращает компонент этого имени LDAP в виде строки. |
Enumeration |
getAll() |
Возвращает компоненты этого имени в виде перечисления строк. |
Name |
getPrefix |
Создаёт имя, компоненты которого состоят из префикса компонентов этого имени LDAP. |
Rdn |
getRdn |
Возвращает RDN этого имени LDAP в виде объекта Rdn. |
List |
getRdns() |
Возвращает список относительных отличительных имён. |
Name |
getSuffix |
Создаёт имя, компоненты которого состоят из суффикса компонентов этого имени LDAP. |
int |
hashCode() |
Вычисляет хеш-код этого имени LDAP. |
boolean |
isEmpty() |
Определяет, является ли это имя LDAP пустым. |
Object |
remove |
Удаляет компонент из этого имени LDAP. |
int |
size() |
Возвращает количество компонентов в этом имени LDAP. |
boolean |
startsWith |
Определяет, образует ли указанная последовательность RDN префикс этого имени LDAP. |
boolean |
startsWith |
Определяет, начинается ли это имя 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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
LdapName
public LdapName(String name) throws InvalidNameException
- Параметры:
-
name— это ненулевое различающееся имя, отформатированное в соответствии с правилами, определенными в RFC 2253. - Исключения:
-
InvalidNameException— если обнаружено нарушение синтаксиса. - См. также:
LdapName
public LdapName(List<Rdn> rdns)
Индексация RDN в списке соответствует нумерации RDN, описанной в описании класса.
- Параметры:
-
rdns— ненулевой списокRdn, образующих это имя LDAP.
Подробное описание методов
size
isEmpty
getAll
public Enumeration<String> getAll()
get
public String get(int posn)
- Определено в:
-
getв интерфейсеName - Параметры:
-
posn— индекс компонента для извлечения, отсчитываемый от 0. Должен находиться в диапазоне [0,size()). - Возвращает:
- Ненулевой компонент с индексом posn.
- Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
getRdn
public Rdn getRdn(int posn)
- Параметры:
-
posn— индекс RDN для извлечения, отсчитываемый от 0. Должен находиться в диапазоне [0,size()). - Возвращает:
- Ненулевой RDN с индексом posn.
- Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
getPrefix
public Name getPrefix(int posn)
- Определено в:
-
getPrefixв интерфейсеName - Параметры:
-
posn— индекс компонента, на котором следует остановиться, отсчитываемый от 0. Должен находиться в диапазоне [0,size()]. - Возвращает:
- Экземпляр
LdapName, состоящий из компонентов с индексами в диапазоне [0,posn). Если posn равен нулю, возвращается пустое имя LDAP. - Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
getSuffix
public Name getSuffix(int posn)
- Определено в:
-
getSuffixв интерфейсеName - Параметры:
-
posn— индекс компонента, с которого следует начать, отсчитываемый от 0. Должен находиться в диапазоне [0,size()]. - Возвращает:
- Экземпляр
LdapName, состоящий из компонентов с индексами в диапазоне [posn,size()). Если posn равен size(), возвращается пустое имя LDAP. - Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
startsWith
public boolean startsWith(Name n)
n является префиксом, если оно равно getPrefix(n.size()) — другими словами, это имя LDAP начинается с 'n'. Если n равно null или не является именем в формате RFC2253, описанном в описании класса, возвращается false.- Определено в:
-
startsWithв интерфейсеName - Параметры:
-
n— имя LDAP для проверки. - Возвращает:
- true, если
nявляется префиксом этого имени LDAP, и false в противном случае. - См. также:
startsWith
public boolean startsWith(List<Rdn> rdns)
- Параметры:
-
rdns— проверяемая последовательностьRdn. - Возвращает:
- true, если
rdnsобразуют префикс этого имени LDAP, и false в противном случае.
endsWith
public boolean endsWith(Name n)
n является суффиксом, если оно равно getSuffix(size()-n.size()) — другими словами, это имя LDAP заканчивается на 'n'. Если n равно null или не является именем в формате RFC2253, описанном в описании класса, возвращается false.endsWith
public boolean endsWith(List<Rdn> rdns)
- Параметры:
-
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)
- Параметры:
-
suffixRdns— ненулевые RDN суффиксаRdnдля добавления. - Возвращает:
- Обновленное имя (не новый экземпляр).
addAll
public Name addAll(int posn, Name suffix) throws InvalidNameException
- Определено в:
-
addAllв интерфейсеName - Параметры:
-
posn— индекс, в который следует добавить новый компонент. Должен находиться в диапазоне [0,size()]. -
suffix— ненулевые компоненты для добавления. - Возвращает:
- Обновленное имя (не новый экземпляр).
- Исключения:
-
InvalidNameException— еслиsuffixне является допустимым именем LDAP или если добавление компонентов нарушает синтаксические правила этого имени LDAP. -
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
addAll
public Name addAll(int posn, List<Rdn> suffixRdns)
- Параметры:
-
posn— индекс, в который следует добавить RDN суффикса. Должен находиться в диапазоне [0,size()]. -
suffixRdns— ненулевые RDN суффиксаRdnдля добавления. - Возвращает:
- Обновленное имя (не новый экземпляр).
- Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
add
public Name add(String comp) throws InvalidNameException
- Определено в:
-
addв интерфейсеName - Параметры:
-
comp— ненулевой компонент для добавления. - Возвращает:
- Обновленный LdapName, не новый экземпляр. Не может быть null.
- Исключения:
-
InvalidNameException— если добавление comp в конец имени нарушает синтаксис имени.
add
public Name add(Rdn comp)
- Параметры:
-
comp— ненулевой RDN для добавления. - Возвращает:
- Обновленный LdapName, не новый экземпляр. Не может быть null.
add
public Name add(int posn, String comp) throws InvalidNameException
- Определено в:
-
addв интерфейсеName - Параметры:
-
posn— индекс, в который следует добавить новый компонент. Должен находиться в диапазоне [0,size()]. -
comp— ненулевой компонент для добавления. - Возвращает:
- Обновленный LdapName, не новый экземпляр. Не может быть null.
- Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона. -
InvalidNameException— если добавление comp в указанную позицию нарушает синтаксис имени.
add
public Name add(int posn, Rdn comp)
- Параметры:
-
posn— индекс, в который следует добавить новый RDN. Должен находиться в диапазоне [0,size()]. -
comp— ненулевой RDN для добавления. - Возвращает:
- Обновленный LdapName, не новый экземпляр. Не может быть null.
- Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона.
remove
public Object remove(int posn) throws InvalidNameException
- Определено в:
-
removeв интерфейсеName - Параметры:
-
posn— индекс удаляемого компонента. Должен находиться в диапазоне [0,size()). - Возвращает:
- Удаленный компонент (String).
- Исключения:
-
IndexOutOfBoundsException— если posn выходит за пределы указанного диапазона. -
InvalidNameException— если удаление компонента нарушает синтаксические правила имени.
getRdns
public List<Rdn> getRdns()
- Возвращает:
- Имя в виде списка RDN, являющихся экземплярами класса
Rdn.
clone
toString
equals
public boolean equals(Object obj)
Два имени LDAP равны, если каждый RDN одного имени равен соответствующему RDN другого. Это означает, что оба имени содержат одинаковое количество RDN и проверка equals() каждого RDN на равенство соответствующему RDN другого имени возвращает true. Определение равенства RDN см. в разделе Rdn.equals(Object obj).
compareTo
public int compareTo(Object obj)
Если 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. - См. также:
hashCode
© 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.