Класс 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 (« »).
- Пробелы разрешены по обе стороны от ',', ';', '=', и '+'. Такие пробелы принимаются, но не генерируются этим кодом и игнорируются при сравнении имён.
- Строки значений атрибутов, содержащие '=' или не начальные '#' символы (неэкранированные) принимаются.
Строковые имена, передаваемые в LdapName или возвращаемые им, используют полный набор символов Юникода. Они также могут содержать символы, закодированные в 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, а левый – в индексе n-1. Например, выделенное имя: «CN=Steve Kille, O=Isode Limited, C=GB» пронумеровано в следующей последовательности, начиная с 0 и заканчивая 2: {C=GB, O=Isode Limited, CN=Steve Kille}. Пустое имя LDAP представлено пустым списком RDN.
Одновременный многопоточный доступ для чтения к экземпляру LdapName не требует синхронизации.
Если не указано иное, передача нулевого аргумента в конструктор или метод в этом классе вызовет исключение 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, и описанном в описании класса. |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Конструкторы
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.
isEmpty
public boolean isEmpty()
Определяет, пусто ли это имя LDAP. Пустое имя — это имя с нулевыми компонентами.
getAll
public Enumeration<String> getAll()
Возвращает компоненты этого имени как перечисление строк. Эффект обновлений этого имени на это перечисление не определен. Если имя имеет нулевые компоненты, возвращается пустое (не null) перечисление. Порядок компонентов, возвращаемых перечислением, такой же, как порядок, в котором компоненты пронумерованы, как описано в описании класса.
- Указано в:
-
getAllв интерфейсеName - Возвращает:
- Не null перечисление компонентов этого имени LDAP. Каждый элемент перечисления имеет тип String.
get
public String get(int posn)
Возвращает компонент этого имени LDAP в виде строки.
- Указано в:
-
getв интерфейсеName - Параметры:
-
posn- Базовой индекс компонента для извлечения. Должен быть в диапазоне [0,size()). - Возвращает:
- Компонент по индексу posn (не null).
- Исключение:
-
IndexOutOfBoundsException- если posn находится вне указанного диапазона.
getRdn
public Rdn getRdn(int posn)
Возвращает RDN этого имени LDAP в виде Rdn.
- Параметры:
-
posn- Базовой индекс RDN для извлечения. Должен быть в диапазоне [0,size()). - Возвращает:
- RDN по индексу posn (не null).
- Исключение:
-
IndexOutOfBoundsException- если posn находится вне указанного диапазона.
getPrefix
public Name getPrefix(int posn)
Создаёт имя, компоненты которого состоят из префикса компонентов этого имени LDAP. Последующие изменения этого имени не повлияют на возвращаемое имя и наоборот.
- Указано в:
-
getPrefixв интерфейсеName - Параметры:
-
posn- Базовой индекс компонента для остановки. Должен быть в диапазоне [0,size()]. - Возвращает:
- Экземпляр
LdapName, состоящий из компонентов с индексами в диапазоне [0,posn). Если posn равно нулю, возвращается пустое имя LDAP. - Исключение:
-
IndexOutOfBoundsException- Если posn находится вне указанного диапазона.
getSuffix
public Name getSuffix(int posn)
Создаёт имя, компоненты которого состоят из суффикса компонентов в этом имени LDAP. Последующие изменения этого имени не влияют на возвращаемое имя и наоборот.
- Указано в:
-
getSuffixв интерфейсеName - Параметры:
-
posn- Базовой индекс компонента для начала. Должен быть в диапазоне [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. - Возвращает:
- Обновленное имя (не новый экземпляр).
addAll
public Name addAll(int posn,
Name suffix)
throws InvalidNameException Добавляет компоненты имени — в порядке — в заданную позицию в этом имени. Компоненты этого имени LDAP на или после индекса (если есть) первого нового компонента смещаются вверх (от индекса 0) для размещения новых компонентов.
- Указано в:
-
addAllв интерфейсеName - Параметры:
-
suffix- Добавляемые компоненты (не null). -
posn- Индекс, в который нужно добавить новый компонент. Должен быть в диапазоне [0,size()]. - Возвращает:
- Обновленное имя (не новый экземпляр).
- Исключение:
-
InvalidNameException- еслиsuffixне является допустимым именем LDAP или добавление компонентов нарушит синтаксические правила этого имени LDAP. -
IndexOutOfBoundsException- Если posn находится вне указанного диапазона.
addAll
public Name addAll(int posn,
List<Rdn> suffixRdns) Добавляет RDNы имени — в порядке — в заданную позицию в этом имени. RDNы этого имени LDAP на или после индекса (если есть) первого нового RDN смещаются вверх (от индекса 0) для размещения новых RDN.
- Параметры:
-
suffixRdns- Добавляемые суффиксныеRdn. -
posn- Индекс, в который нужно добавить суффиксные RDN. Должен быть в диапазоне [0,size()]. - Возвращает:
- Обновленное имя (не новый экземпляр).
- Исключение:
-
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 - Параметры:
-
comp- Добавляемый компонент (не null). -
posn- Индекс, в который нужно добавить новый компонент. Должен быть в диапазоне [0,size()]. - Возвращает:
- Обновлённое LdapName, не новый экземпляр. Не может быть null.
- Исключение:
-
IndexOutOfBoundsException- Если posn находится вне указанного диапазона. -
InvalidNameException- Если добавление comp в указанную позицию нарушит синтаксис имени.
add
public Name add(int posn,
Rdn comp) Добавляет один RDN в заданную позицию в этом имени LDAP. RDNы этого имени LDAP на или после индекса (если есть) нового RDN смещаются вверх на одну позицию (от индекса 0) для размещения нового RDN.
- Параметры:
-
comp- Добавляемый RDN (не null). -
posn- Индекс, в который нужно добавить новый RDN. Должен быть в диапазоне [0,size()]. - Возвращает:
- Обновлённое LdapName, не новый экземпляр. Не может быть null.
- Исключение:
-
IndexOutOfBoundsException- Если posn находится вне указанного диапазона.
remove
public Object remove(int posn)
throws InvalidNameException Удаляет компонент из этого имени LDAP. Компонент этого имени в указанной позиции удаляется. Компоненты с индексами, большими, чем эта позиция (если таковые имеются), сдвигаются вниз (в сторону индекса 0) на единицу.
- Определяется:
-
removeв интерфейсеName - Параметры:
-
posn- Индекс компонента, который нужно удалить. Должен находиться в диапазоне [0,size()). - Возвращает:
- Удаленный компонент (строка).
- Выбрасывает:
-
IndexOutOfBoundsException- если posn находится вне указанного диапазона. -
InvalidNameException- если удаление компонента нарушит синтаксические правила имени.
getRdns
public List<Rdn> getRdns()
Возвращает список относительных отличительных имен. Содержимое списка неизменяемо. Нумерация RDN в возвращенном списке соответствует нумерации RDN, как описано в описании класса. Если имя имеет ноль компонентов, возвращается пустой список.
- Возвращает:
- Имя в виде списка RDN, являющихся экземплярами класса
Rdn.
clone
public Object clone()
Создает новую копию этого имени. Последующие изменения компонентов этого имени не повлияют на новую копию, и наоборот.
- Определяется:
-
cloneв интерфейсеName - Переопределяет:
-
cloneв классеObject - Возвращает:
- Копию имени LDAP.
- См. также:
Cloneable
toString
public String toString()
Возвращает строковое представление этого имени LDAP в формате, определенном в RFC 2253 и описанном в описании класса. Если имя имеет ноль компонентов, возвращается пустая строка.
equals
public boolean equals(Object obj)
Определяет, равны ли два имени LDAP. Если obj равно null или не является именем LDAP, возвращается false.
Два имени LDAP равны, если каждое RDN в одном имени равно соответствующему RDN в другом. Это подразумевает, что у обоих имен одинаковое количество RDN, и тест equals() каждого RDN по отношению к соответствующему RDN в другом имени возвращает true. См. Rdn.equals(Object obj) для определения равенства RDN.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Возможно нулевой объект для сравнения. - Возвращает:
- true, если obj равен этому имени LDAP, иначе false.
- См. также:
hashCode()
compareTo
public int compareTo(Object obj)
Сравнивает это имя LdapName с указанным объектом для упорядочивания. Возвращает отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равно или больше это имя, чем заданный объект.
Если 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. - См. также:
Comparable.compareTo(Object)
hashCode
public int hashCode()
Вычисляет хэш-код этого имени LDAP. Хэш-код — сумма хэш-кодов отдельных RDN этого имени.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Целое число, представляющее хэш-код этого имени.
- См. также:
equals(java.lang.Object)
© 1993, 2020, 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/11/docs/api/java.naming/javax/naming/ldap/LdapName.html