Spec-Zone.ru › OpenJDK 25

Класс Rdn

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

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

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

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

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 — отличный от null Rdn, который необходимо скопировать.

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/javax/naming/ldap/Rdn.html

Spec-Zone.ru

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