Класс Rdn
- Все реализуемые интерфейсы:
Serializable, Comparable<Object>
public class Rdn extends Object implements Serializable, Comparable<Object>
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 |
Создаёт 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, и возвращает неформатированное значение. |
Методы, объявленные в классе 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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
Rdn
public Rdn(Attributes attrSet) throws InvalidNameException
Attributes. Строковые значения атрибутов не интерпретируются как строки RDN в формате RFC 2253. То есть значения используются буквально (не разбираются) и считаются неэкранированными.
- Параметры:
-
attrSet- Атрибуты, не равные null и не пустые, содержащие сопоставления «тип/значение». - Исключения:
-
InvalidNameException- Если содержимоеattrSetнельзя использовать для создания допустимого RDN.
Rdn
public Rdn(String rdnString) throws InvalidNameException
LdapName.- Параметры:
-
rdnString- Строка в формате RFC2253, не равная null и не пустая. - Исключения:
-
InvalidNameException- Если при разборе rdnString произошла синтаксическая ошибка.
Rdn
public Rdn(Rdn rdn)
rdn. Содержимое rdn просто копируется в созданный Rdn.- Параметры:
-
rdn- Rdn, не равный null, который необходимо скопировать.
Rdn
public Rdn(String type, Object value) throws InvalidNameException
- Параметры:
-
type- Строковый тип атрибута, не равный null и не пустой. -
value- Значение атрибута, не равное null и не пустое. - Исключения:
-
InvalidNameException- Если пару «тип/значение» нельзя использовать для создания допустимого RDN. - См. также:
Подробное описание методов
getValue
public Object getValue()
Для RDN с несколькими значениями этот метод возвращает значение, соответствующее типу, возвращаемому методом getType().
- Возвращает:
- Значение атрибута, не равное null.
getType
public String getType()
Для RDN с несколькими значениями порядок пар «тип/значение» не определён. В этом случае метод возвращает тип одной из пар «тип/значение». Метод getValue() возвращает значение, соответствующее типу, возвращаемому этим методом.
- Возвращает:
- Тип атрибута, не равный null.
toString
compareTo
public int compareTo(Object obj)
Если 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)
Сравнение типов и значений на равенство выполняется следующим образом:
- Типы сравниваются на равенство без учёта регистра.
- Строковые значения считаются равными, если они различаются, но эквивалентны по использованию кавычек, экранирования или UTF8-кодирования в шестнадцатеричном формате. При сравнении регистр значений не учитывается.
Если obj равен null или не является экземпляром Rdn, возвращается false.
hashCode
toAttributes
public Attributes toAttributes()
Attributes сопоставлений «тип/значение», содержащихся в этом Rdn.- Возвращает:
- Атрибуты, не равные null, содержащие сопоставления «тип/значение» этого Rdn.
size
public int size()
- Возвращает:
- Неотрицательное количество пар «тип/значение» в этом Rdn.
escapeValue
public static String escapeValue(Object val)
Например, если val равно «Sue, Grabbit and Runn», экранированное значение, возвращаемое этим методом, будет «Sue\, Grabbit and Runn».
Строковое значение представляется объектом String, а двоичное значение — массивом байтов.
- Параметры:
-
val- Объект, не равный null, который необходимо экранировать. - Возвращает:
- Экранированное строковое значение.
- Исключения:
-
ClassCastException- если val не является String или массивом байтов.
unescapeValue
public static Object unescapeValue(String val)
Допустимые и недопустимые значения определены в RFC 2253. Этот метод снисходительно принимает значения и обнаруживает не все недопустимые значения. Поэтому передача недопустимого значения не обязательно приведёт к IllegalArgumentException.
- Параметры:
-
val- Строка, не равная null, для снятия экранирования. - Возвращает:
- Значение без экранирования.
- Исключения:
-
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.