Spec-Zone.ru › OpenJDK 8

Класс LdapName

  • java.lang.Object
    • javax.naming.ldap.LdapName
Все реализованные интерфейсы:
Serializable, Cloneable, Comparable<Object>, Name

public class LdapName
extends Object
implements Name

Этот класс представляет собой имя, определенное в RFC 2253. Имя, или DN (Distinguished Name), состоит из упорядоченного списка компонентов, называемых относительными именами, или RDN (Relative Distinguished Name). Подробности синтаксиса 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 не требует синхронизации.

Если не указано иное, передача null в качестве аргумента конструктору или методу этого класса вызовет исключение NullPointerException.

С:
1.5
См. также:
Сериализованная форма

Конструкторы

Конструктор и описание
LdapName(List<Rdn> rdns)

Конструирует имя LDAP, используя заданные компоненты RDN.

LdapName(String name)

Конструирует имя LDAP из заданного имени.

Методы

Модификатор и тип Метод и описание
Name add(int posn, Rdn comp)

Добавляет один RDN в указанную позицию в данном имени LDAP.

Name add(int posn, String comp)

Добавляет один компонент в указанную позицию в данном имени LDAP.

Name add(Rdn comp)

Добавляет один RDN в конец данного имени LDAP.

Name add(String comp)

Добавляет один компонент в конец данного имени 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.

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

isEmpty

public boolean isEmpty()

Определяет, пусто ли это имя LDAP. Пустым именем является имя с нулевым количеством компонентов.

Определено в:
isEmpty в интерфейсе Name
Возвращает:
true, если это имя LDAP пустое, иначе false.

getAll

public Enumeration<String> getAll()

Возвращает компоненты этого имени в виде перечисления строк. Влияние обновлений этого имени на это перечисление не определено. Если имя имеет ноль компонентов, возвращается пустое (не null) перечисление. Порядок компонентов, возвращаемых перечислением, соответствует порядку, в котором компоненты пронумерованы, как описано в описании класса.

Определено в:
getAll в интерфейсе Name
Возвращает:
Непустое перечисление компонентов этого имени LDAP. Каждый элемент перечисления является строкой типа String.

get

public String get(int posn)

Возвращает компонент этого имени LDAP в виде строки.

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

getRdn

public Rdn getRdn(int posn)

Возвращает RDN этого имени LDAP в виде объекта Rdn.

Параметры:
posn - Индекс RDN для извлечения (с нуля). Должен быть в диапазоне [0,size()).
Возвращает:
Непустой RDN по индексу posn.
Исключения:
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 - Компоненты для добавления (не пустой).
Возвращает:
Обновлённое имя (не новый экземпляр).
Исключения:
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 - Компоненты для добавления (не пустой).
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 - Компонент для добавления (не пустой).
Возвращает:
Обновлённое имя 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
Параметры:
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 и описанном в описании класса. Если имя имеет ноль компонентов, возвращается пустая строка.

Переопределяет:
toString в классе Object
Возвращает:
Строковое представление LdapName.

equals

public boolean equals(Object obj)

Определяет, равны ли два имени LDAP. Если obj равно null или не является именем LDAP, возвращается false.

Два имени LDAP равны, если каждый RDN в одном равен соответствующему RDN в другом. Это подразумевает, что оба имеют одинаковое количество RDN и каждый RDN при проверке equals() со соответствующим RDN в другом имени возвращает true. См. Rdn.equals(Object obj) для определения равенства RDN.

Переопределяет:
equals в классе Object
Параметры:
obj - Возможно null объект для сравнения.
Возвращает:
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.
Возвращает:
Отрицательное целое число, ноль или положительное целое число, как это имя меньше, равно или больше заданного obj.
Исключение:
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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API