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