Spec-Zone.ru › OpenJDK 21

Класс 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. Для методов, которые принимают или возвращают значение атрибута как объект, значение является либо строкой (в неэкранированном виде), либо массивом байтов.

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 с нескольких потоков для чтения и только для чтения не требует синхронизации.

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

Since:
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, возвращает неформатированное значение.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

Rdn

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

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

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

Rdn

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

Rdn

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

Rdn

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

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

getValue

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

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

Возвращает:
Не нулевое значение атрибута.

getType

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

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

Возвращает:
Не нулевой тип атрибута.

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
Возвращает:
Целое число, представляющее хэш-код этого Rdn.
См. также:
  • equals(java.lang.Object)

toAttributes

public Attributes toAttributes()
Возвращает представление Attributes сопоставлений тип/значение, содержащихся в этом Rdn.
Возвращает:
Набор атрибутов, содержащий сопоставления тип/значение этого 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 - Не нулевой объект, который нужно экранировать.
Возвращает:
Экранированное строковое значение.
Исключения:
ClassCastException - если val не является строкой или массивом байтов.

unescapeValue

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

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

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

© 1993, 2023, 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/21/docs/api/java.naming/javax/naming/ldap/Rdn.html

Spec-Zone.ru

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