Класс Rdn
- Все реализованные интерфейсы:
-
Serializable,Comparable<Object>
public class Rdn extends Object implements Serializable, Comparable<Object>
LdapName. Класс Rdn представляет RDN как отображения типа/значения атрибута, которые можно просмотреть с помощью Attributes. Кроме того, он содержит вспомогательные методы, которые позволяют легко извлечь тип и значение, когда Rdn состоит из одной пары тип/значение, что является типичным вариантом использования. Он также содержит вспомогательные методы, которые позволяют экранировать неформатированное значение атрибута и отэкранировать значение, отформатированное в соответствии с синтаксисом экранирования, определённым в RFC2253. Для методов, которые принимают или возвращают значение атрибута в качестве объекта, значение является либо строкой (в неэкранированной форме), либо массивом байтов.
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 |
Создаёт Rdn из заданной строки. |
Rdn |
Создаёт Rdn из заданного типа и значения атрибута. |
Rdn |
Создаёт Rdn из заданного набора атрибутов. |
Rdn |
Создаёт Rdn из заданного rdn. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
compareTo |
Сравнивает этот Rdn с указанным объектом для определения порядка. |
boolean |
equals |
Сравнивает указанный объект с этим Rdn для проверки равенства. |
static String |
escapeValue |
Для заданного значения атрибута возвращает строку, экранированную в соответствии с правилами, указанными в RFC 2253. |
String |
getType() |
Извлекает один из типов этого Rdn. |
Object |
getValue() |
Извлекает одно из значений этого Rdn. |
int |
hashCode() |
Возвращает хеш-код этого RDN. |
int |
size() |
Извлекает количество пар тип/значение атрибута в этом Rdn. |
Attributes |
toAttributes() |
Извлекает представление Attributes отображений тип/значение, содержащихся в этом Rdn. |
String |
toString() |
|
static Object |
unescapeValue |
Для заданной строки значения атрибута, отформатированной в соответствии с правилами, указанными в RFC 2253, возвращает неформатированное значение. |
Подробное описание конструкторов
Rdn
public Rdn(Attributes attrSet) throws InvalidNameException
Attributes. Строковые значения атрибутов не интерпретируются как строки RDN в формате RFC 2253. То есть, значения используются буквально (не анализируются) и предполагается, что они не экранированы.
- Параметры:
-
attrSet- Непустой и не нулевой набор атрибутов, содержащий соответствия тип/значение. - Исключения:
-
InvalidNameException- Если содержимоеattrSetне может быть использовано для построения корректного RDN.
Rdn
public Rdn(String rdnString) throws InvalidNameException
LdapName.- Параметры:
-
rdnString- Непустая и не нулевая строка в формате RFC2253. - Исключения:
-
InvalidNameException- Если при парсинге rdnString произошла синтаксическая ошибка.
Rdn
public Rdn(Rdn rdn)
rdn. Содержимое rdn просто копируется в вновь созданный Rdn.- Параметры:
-
rdn- Не нулевой Rdn, который нужно скопировать.
Rdn
public Rdn(String type, Object value) throws InvalidNameException
- Параметры:
-
type- Непустой и не нулевой строковый тип атрибута. -
value- Непустой и не нулевой атрибут значение. - Исключения:
-
InvalidNameException- Если тип/значение не может быть использовано для построения корректного RDN. - См. также:
Подробное описание методов
getValue
public Object getValue()
Для многозначного RDN этот метод возвращает значение, соответствующее типу, возвращённому методом getType().
- Возвращает:
- Не нулевое значение атрибута.
getType
public String getType()
Для многозначного RDN пары тип/значение не имеют определённого порядка. В этом случае этот метод возвращает тип одной из пар тип/значение. Метод getValue() возвращает значение, соответствующее типу, возвращённому этим методом.
- Возвращает:
- Не нулевой тип атрибута.
toString
compareTo
public int compareTo(Object obj)
Если obj равен null или не является экземпляром Rdn, выбрасывается ClassCastException.
Пары тип/значение RDN сравниваются лексикографически. Порядок компонентов в многозначных Rdn (например, "ou=Sales+cn=Bob") не имеет значения.
- Указано в:
-
compareToв интерфейсеComparable<Object> - Параметры:
-
obj- Не нулевой объект для сравнения. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равен или больше этот Rdn, чем заданный объект.
- Исключения:
-
ClassCastException- если obj равен null или не является Rdn.
equals
public boolean equals(Object obj)
Сопоставление типов и значений на равенство выполняется следующим образом:
- Типы сравниваются на равенство без учёта регистра.
- Строковые значения с различными, но эквивалентными способами использования кавычек, экранирования или кодирования UTF8 в шестнадцатеричном формате считаются равными. При сравнении регистр значений игнорируется.
Если obj равен null или не является экземпляром Rdn, возвращается false.
hashCode
toAttributes
public Attributes toAttributes()
Attributes соответствий тип/значение, содержащихся в этом Rdn.- Возвращает:
- Не нулевой набор атрибутов, содержащих соответствия тип/значение этого Rdn.
size
public int size()
- Возвращает:
- Неотрицательное число пар тип/значение в этом Rdn.
escapeValue
public static String escapeValue(Object val)
Например, если val равно "Sue, Grabbit and Runn", экранированное значение, возвращаемое этим методом, равно "Sue\, Grabbit and Runn".
Строковое значение представляется как String, бинарное значение как массив байтов.
- Параметры:
-
val- Не нулевой объект, подлежащий экранированию. - Возвращает:
- Экранированное строковое значение.
- Исключения:
-
ClassCastException- если val не является строкой или массивом байтов.
unescapeValue
public static Object unescapeValue(String val)
Законные и незаконные значения определены в RFC 2253. Этот метод достаточно лоялен к значениям и не ловит все незаконные значения. Поэтому передача незаконного значения необязательно вызовет IllegalArgumentException.
- Параметры:
-
val- Не нулевая строка, подлежащая разэкранированию. - Возвращает:
- Разэкранированное значение.
- Исключения:
-
IllegalArgumentException- Когда предоставлено незаконное значение.
© 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://download.java.net/java/early_access/jdk24/docs/api/java.naming/javax/naming/ldap/Rdn.html