Класс 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-серверу, который может принять или отклонить имя на основе таких факторов, как информация его схемы и соображения по межсетевому взаимодействию.
При сравнении имён типы атрибутов, как бинарные, так и строковые значения, не чувствительны к регистру. Строковые значения с различными, но эквивалентными способами использования кавычек, экранирования или кодирования UTF8-шестнадцатеричными символами считаются равными. Порядок компонентов в многозначных 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 |
Конструирует имя 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 и описанном в описании класса. |
Подробное описание конструкторов
LdapName
public LdapName(String name) throws InvalidNameException
- Параметры:
-
name- Это непустое отличительное имя, отформатированное в соответствии с правилами, определёнными в RFC 2253. - Исключения:
-
InvalidNameException- если обнаружено нарушение синтаксиса. - См. также:
LdapName
public LdapName(List<Rdn> rdns)
Индексация RDN в списке соответствует нумерации RDN, описанной в описании класса.
- Параметры:
-
rdns- Непустой списокRdn, формирующих это имя LDAP.
Подробное описание методов
size
public int size()
- Определено в:
-
sizeв интерфейсеName - Возвращает:
- Неотрицательное количество компонентов в этом имени LDAP.
isEmpty
public boolean isEmpty()
- Определено в:
-
isEmptyв интерфейсеName - Возвращает:
- true, если это имя LDAP пустое, иначе false.
getAll
public Enumeration<String> getAll()
- Определено в:
-
getAllв интерфейсеName - Возвращает:
- Непустое перечисление компонентов этого имени LDAP. Каждый элемент перечисления имеет тип String.
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в интерфейсеName - Параметры:
-
n- Проверяемое имя LDAP. - Возвращает:
- true, если
nявляется суффиксом этого имени, иначе 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- Компоненты для добавления (не null). - Возвращает:
- Обновлённое имя (не новый экземпляр).
- Исключения:
-
InvalidNameException- еслиsuffixне является допустимым именем LDAP или добавление компонентов нарушает синтаксические правила этого имени LDAP.
addAll
public Name addAll(List<Rdn> suffixRdns)
- Параметры:
-
suffixRdns- Добавляемый суффиксRdn. - Возвращает:
- Обновлённое имя (не новый экземпляр).
addAll
public Name addAll(int posn, Name suffix) throws InvalidNameException
- Определено в:
-
addAllв интерфейсеName - Параметры:
-
posn- Индекс для добавления нового компонента. Должен быть в диапазоне [0,size()]. -
suffix- Компоненты для добавления (не null). - Возвращает:
- Обновлённое имя (не новый экземпляр).
- Исключения:
-
InvalidNameException- еслиsuffixне является допустимым именем LDAP или добавление компонентов нарушает синтаксические правила этого имени LDAP. -
IndexOutOfBoundsException- Если posn выходит за указанный диапазон.
addAll
public Name addAll(int posn, List<Rdn> suffixRdns)
- Параметры:
-
posn- Индекс для добавления суффиксных RDN. Должен быть в диапазоне [0,size()]. -
suffixRdns- Добавляемый суффиксRdn. - Возвращает:
- Обновлённое имя (не новый экземпляр).
- Исключения:
-
IndexOutOfBoundsException- Если posn выходит за указанный диапазон.
добавить
public Name add(String comp) throws InvalidNameException
- Определено в:
-
addв интерфейсеName - Параметры:
-
comp- Добавляемый компонент, не null. - Возвращает:
- Обновленное имя LdapName, не новый экземпляр. Не может быть null.
- Исключения:
-
InvalidNameException- Если добавление comp в конец имени нарушит синтаксис имени.
добавить
public Name add(Rdn comp)
- Параметры:
-
comp- Добавляемый RDN, не null. - Возвращает:
- Обновленное имя LdapName, не новый экземпляр. Не может быть null.
добавить
public Name add(int posn, String comp) throws InvalidNameException
- Определено в:
-
addв интерфейсеName - Параметры:
-
posn- Индекс, в который нужно добавить новый компонент. Должно находиться в диапазоне [0,size()]. -
comp- Добавляемый компонент, не null. - Возвращает:
- Обновленное имя LdapName, не новый экземпляр. Не может быть null.
- Исключения:
-
IndexOutOfBoundsException- Если posn находится за пределами указанного диапазона. -
InvalidNameException- Если добавление comp в указанную позицию нарушит синтаксис имени.
добавить
public Name add(int posn, Rdn comp)
- Параметры:
-
posn- Индекс, в который нужно добавить новый RDN. Должно находиться в диапазоне [0,size()]. -
comp- Добавляемый RDN, не null. - Возвращает:
- Обновленное имя LdapName, не новый экземпляр. Не может быть null.
- Исключения:
-
IndexOutOfBoundsException- Если posn находится за пределами указанного диапазона.
удалить
public Object remove(int posn) throws InvalidNameException
- Определено в:
-
removeв интерфейсеName - Параметры:
-
posn- Индекс компонента для удаления. Должно находиться в диапазоне [0,size()). - Возвращает:
- Удаленный компонент (String).
- Исключения:
-
IndexOutOfBoundsException- если posn находится за пределами указанного диапазона. -
InvalidNameException- если удаление компонента нарушит синтаксические правила имени.
getRdns
public List<Rdn> getRdns()
- Возвращает:
- Имя в виде списка RDN, которые являются экземплярами класса
Rdn.
клонировать
public Object clone()
- Определено в:
-
cloneв интерфейсеName - Переопределяет:
-
cloneв классеObject - Возвращает:
- Копию этого имени LDAP.
- См. также:
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Строковое представление LdapName.
equals
public boolean equals(Object obj)
Два имени LDAP равны, если каждый RDN в одном равен соответствующему RDN в другом. Это подразумевает, что оба имеют одинаковое количество RDN, и каждый тест equals() RDN против соответствующего RDN в другом имени возвращает true. Смотрите Rdn.equals(Object obj) для определения равенства RDN.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Возможный null объект для сравнения. - Возвращает:
- true, если obj равен этому имени LDAP, в противном случае false.
- См. также:
compareTo
public int compareTo(Object obj)
Если obj равен null или не является экземпляром LdapName, выбрасывается ClassCastException.
Порядок имен LDAP следует лексикографическим правилам сравнения строк, с расширением, что это применяется ко всем RDN в имени LDAP. Все RDN выстраиваются в их указанном порядке и сравниваются лексикографически. Смотрите Rdn.compareTo(Object obj) для правил сравнения RDN.
Если это имя LDAP лексикографически меньше obj, возвращается отрицательное число. Если это имя LDAP лексикографически больше obj, возвращается положительное число.
- Определено в:
-
compareToв интерфейсеComparable<Object> - Определено в:
-
compareToв интерфейсеName - Параметры:
-
obj- Экземпляр LdapName, для сравнения. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, так как это имя меньше, равно или больше, чем заданный obj.
- Исключения:
-
ClassCastException- если obj равен null или не является LdapName. - См. также:
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Целое число, представляющее хэш-код этого имени.
- См. также:
© 1993, 2023, 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/21/docs/api/java.naming/javax/naming/ldap/LdapName.html