Spec-Zone.ru › OpenJDK 27

Класс Rdn

java.lang.Object
javax.naming.ldap.Rdn
Все реализуемые интерфейсы:
Serializable, Comparable<Object>
public class Rdn extends Object implements Serializable, Comparable<Object>
Этот класс представляет относительное различающееся имя (relative distinguished name), или RDN, являющееся компонентом различающегося имени, как указано в RFC 2253. Пример RDN: «OU=Sales+CN=J.Smith». В этом примере RDN состоит из нескольких пар «тип атрибута/значение». RDN разбирается, как описано в описании класса LdapName.

Класс Rdn представляет RDN в виде сопоставлений «тип атрибута/значение», которые можно просмотреть с помощью Attributes. Кроме того, он содержит вспомогательные методы, позволяющие легко получить тип и значение, если Rdn состоит из одной пары «тип/значение», как это обычно бывает при использовании. Также класс содержит вспомогательные методы для экранирования неформатированного значения атрибута и снятия экранирования со значения, отформатированного согласно синтаксису экранирования, определённому в RFC2253. Для методов, принимающих или возвращающих значение атрибута типа Object, значение представлено строкой (без экранирования) или массивом байтов.

Rdn корректно разбирает все допустимые RDN, но не пытается обнаружить все возможные нарушения при разборе недопустимых RDN. Класс «снисходительно» принимает недопустимые RDN. «Допустимость» имени в конечном счёте определяется при его передаче LDAP-серверу, который может принять или отклонить имя с учётом таких факторов, как информация о схеме и требования совместимости.

В следующем примере кода показано, как создать Rdn с помощью конструктора, принимающего тип и значение в качестве аргументов:

     Rdn rdn = new Rdn("cn", "Juicy, Fruit");
     System.out.println(rdn.toString());
Последняя строка выведет cn=Juicy\, Fruit. Метод unescapeValue() можно использовать для снятия экранирования с экранированной запятой, чтобы получить исходное значение "Juicy, Fruit". Метод escapeValue() добавляет обратную косую черту перед запятой.

Экземпляр этого класса можно создать, передав строковое представление RDN, определённое в RFC 2253, как показано в следующем примере кода:

     Rdn rdn = new Rdn("cn=Juicy\\, Fruit");
     System.out.println(rdn.toString());
Последняя строка выведет cn=Juicy\, Fruit.

Для экземпляра Rdn не требуется синхронизация при одновременном многопоточном доступе только для чтения.

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

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

Краткое описание конструкторов

Конструктор Описание
Rdn(String rdnString)
Создаёт Rdn из указанной строки.
Rdn(String type, Object value)
Создаёт Rdn из указанного типа атрибута и значения.
Rdn(Attributes attrSet)
Создаёт Rdn из указанного набора атрибутов.
Rdn(Rdn rdn)
Создаёт Rdn из указанного rdn.

Краткое описание методов

Модификатор и тип Метод Описание
int compareTo(Object obj)
Сравнивает этот Rdn с указанным объектом для определения порядка.
boolean equals(Object obj)
Сравнивает указанный объект с этим Rdn на равенство.
static String escapeValue(Object val)
Принимает значение атрибута и возвращает строку, экранированную согласно правилам, указанным в RFC 2253.
String getType()
Получает один из типов этого Rdn.
Object getValue()
Получает одно из значений этого Rdn.
int hashCode()
Возвращает хеш-код этого RDN.
int size()
Получает количество пар «тип атрибута/значение» в этом Rdn.
Attributes toAttributes()
Получает представление Attributes сопоставлений «тип/значение», содержащихся в этом Rdn.
String toString()
Возвращает этот Rdn в виде строки в формате, определённом RFC 2253 и описанном в описании класса LdapName.
static Object unescapeValue(String val)
Принимает строку значения атрибута, отформатированную согласно правилам, указанным в RFC 2253, и возвращает неформатированное значение.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

Rdn

public Rdn(Attributes attrSet) throws InvalidNameException
Создаёт Rdn из указанного набора атрибутов. См. Attributes.

Строковые значения атрибутов не интерпретируются как строки RDN в формате RFC 2253. То есть значения используются буквально (не разбираются) и считаются неэкранированными.

Параметры:
attrSet - Атрибуты, не равные null и не пустые, содержащие сопоставления «тип/значение».
Исключения:
InvalidNameException - Если содержимое attrSet нельзя использовать для создания допустимого RDN.

Rdn

public Rdn(String rdnString) throws InvalidNameException
Создаёт Rdn из указанной строки. Этот конструктор принимает строку, отформатированную согласно правилам, определённым в RFC 2253 и описанным в описании класса LdapName.
Параметры:
rdnString - Строка в формате RFC2253, не равная null и не пустая.
Исключения:
InvalidNameException - Если при разборе rdnString произошла синтаксическая ошибка.

Rdn

public Rdn(Rdn rdn)
Создаёт Rdn из указанного rdn. Содержимое rdn просто копируется в созданный Rdn.
Параметры:
rdn - Rdn, не равный null, который необходимо скопировать.

Rdn

public Rdn(String type, Object value) throws InvalidNameException
Создаёт Rdn из указанного типа атрибута и значения. Строковые значения атрибутов не интерпретируются как строки RDN в формате RFC 2253. То есть значения используются буквально (не разбираются) и считаются неэкранированными.
Параметры:
type - Строковый тип атрибута, не равный null и не пустой.
value - Значение атрибута, не равное null и не пустое.
Исключения:
InvalidNameException - Если пару «тип/значение» нельзя использовать для создания допустимого RDN.
См. также:
  • toString()

Подробное описание методов

getValue

public Object getValue()
Получает одно из значений этого Rdn. Это вспомогательный метод для получения значения, когда RDN содержит одно сопоставление типа и значения, что является обычным случаем использования RDN.

Для RDN с несколькими значениями этот метод возвращает значение, соответствующее типу, возвращаемому методом getType().

Возвращает:
Значение атрибута, не равное null.

getType

public String getType()
Получает один из типов этого Rdn. Это вспомогательный метод для получения типа, когда RDN содержит одно сопоставление типа и значения, что является обычным случаем использования RDN.

Для RDN с несколькими значениями порядок пар «тип/значение» не определён. В этом случае метод возвращает тип одной из пар «тип/значение». Метод getValue() возвращает значение, соответствующее типу, возвращаемому этим методом.

Возвращает:
Тип атрибута, не равный null.

toString

public String toString()
Возвращает этот Rdn в виде строки в формате, определённом RFC 2253 и описанном в описании класса LdapName.
Переопределяет:
toString в классе Object
Возвращает:
Строковое представление Rdn.

compareTo

public int compareTo(Object obj)
Сравнивает этот Rdn с указанным объектом для определения порядка. Возвращает отрицательное целое число, ноль или положительное целое число в зависимости от того, меньше ли этот Rdn указанного объекта, равен ему или больше него.

Если obj равен null или не является экземпляром Rdn, выбрасывается ClassCastException.

Пары «тип атрибута/значение» двух RDN выстраиваются друг напротив друга и сравниваются лексикографически. Порядок компонентов в RDN с несколькими значениями (например, «ou=Sales+cn=Bob») не имеет значения.

Определено в:
compareTo в интерфейсе Comparable<Object>
Параметры:
obj - Объект, не равный null, для сравнения.
Возвращает:
Отрицательное целое число, ноль или положительное целое число в зависимости от того, меньше ли этот Rdn указанного объекта, равен ему или больше него.
Исключения:
ClassCastException - если obj равен null или не является Rdn.

equals

public boolean equals(Object obj)
Сравнивает указанный объект с этим Rdn на равенство. Возвращает true, если указанный объект также является Rdn и оба Rdn представляют одинаковые сопоставления «тип атрибута/значение». Порядок компонентов в RDN с несколькими значениями (например, «ou=Sales+cn=Bob») не имеет значения.

Сравнение типов и значений на равенство выполняется следующим образом:

  • Типы сравниваются на равенство без учёта регистра.
  • Строковые значения считаются равными, если они различаются, но эквивалентны по использованию кавычек, экранирования или UTF8-кодирования в шестнадцатеричном формате. При сравнении регистр значений не учитывается.

Если obj равен null или не является экземпляром Rdn, возвращается false.

Переопределяет:
equals в классе Object
Параметры:
obj - объект для сравнения с этим Rdn на равенство.
Возвращает:
true, если указанный объект равен этому Rdn.
См. также:
  • hashCode()

hashCode

public int hashCode()
Возвращает хеш-код этого RDN. Два равных RDN (согласно методу equals) будут иметь одинаковый хеш-код.
Переопределяет:
hashCode в классе Object
Возвращает:
Значение типа int, представляющее хеш-код этого Rdn.
См. также:
  • equals(Object)

toAttributes

public Attributes toAttributes()
Получает представление Attributes сопоставлений «тип/значение», содержащихся в этом Rdn.
Возвращает:
Атрибуты, не равные null, содержащие сопоставления «тип/значение» этого Rdn.

size

public int size()
Получает количество пар «тип атрибута/значение» в этом Rdn.
Возвращает:
Неотрицательное количество пар «тип/значение» в этом Rdn.

escapeValue

public static String escapeValue(Object val)
Принимает значение атрибута и возвращает строку, экранированную согласно правилам, указанным в RFC 2253.

Например, если val равно «Sue, Grabbit and Runn», экранированное значение, возвращаемое этим методом, будет «Sue\, Grabbit and Runn».

Строковое значение представляется объектом String, а двоичное значение — массивом байтов.

Параметры:
val - Объект, не равный null, который необходимо экранировать.
Возвращает:
Экранированное строковое значение.
Исключения:
ClassCastException - если val не является String или массивом байтов.

unescapeValue

public static Object unescapeValue(String val)
Принимает строку значения атрибута, отформатированную согласно правилам, указанным в RFC 2253, и возвращает неформатированное значение. Экранирование и кавычки удаляются, а UTF-8, закодированный в шестнадцатеричном формате, преобразуется в соответствующие символы UTF-16. Строковое значение возвращается как String, а двоичное значение — как массив байтов.

Допустимые и недопустимые значения определены в RFC 2253. Этот метод снисходительно принимает значения и обнаруживает не все недопустимые значения. Поэтому передача недопустимого значения не обязательно приведёт к IllegalArgumentException.

Параметры:
val - Строка, не равная null, для снятия экранирования.
Возвращает:
Значение без экранирования.
Исключения:
IllegalArgumentException - Если указано недопустимое значение.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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