- 所有已实现的接口:
Serializable
,Comparable<Object>
LdapName
的类描述中的描述进行解析。
Rdn 类将 RDN 表示为属性类型/值映射,可以使用 Attributes
查看。此外,它包含方便的方法,当 Rdn 由单个类型/值对组成时,允许轻松检索类型和值,这就是它在典型用法中的表现。它还包含帮助程序方法,允许转义未格式化的属性值和取消转义根据 RFC2253 中定义的转义语法格式化的值。对于将属性值作为对象获取或返回的方法,该值是字符串(未转义形式)或字节数组。
Rdn
将正确解析所有有效的 RDN,但在解析无效的 RDN 时不会尝试检测所有可能的违规行为。接受无效的 RDN 是“慷慨的”。名称的“有效性”最终是在将名称提供给 LDAP 服务时确定的,LDAP 服务可能会根据其模式信息和互操作性考虑等因素接受或拒绝该名称。
以下代码示例显示如何使用将类型和值作为参数的构造方法来构造 Rdn:
Rdn rdn = new Rdn("cn", "Juicy, Fruit"); System.out.println(rdn.toString());最后一行将打印
cn=Juicy\, Fruit
。 unescapeValue()
方法可用于对转义逗号进行反转义,得到原始值 "Juicy, Fruit"
。 escapeValue()
方法在逗号前添加转义符。
此类可以通过 RFC 2253 中定义的 RDN 的字符串表示来实例化,如以下代码示例所示:
Rdn rdn = new Rdn("cn=Juicy\\, Fruit"); System.out.println(rdn.toString());最后一行将打印
cn=Juicy\, Fruit
。
Rdn
实例的并发多线程只读访问不需要同步。
除非另有说明,否则将 null 参数传递给此类中的构造方法或方法的行为将导致抛出 NullPointerException。
- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述int
将此 Rdn 与指定的 Object 进行比较以获得顺序。boolean
比较指定的 Object 与此 Rdn 是否相等。static String
escapeValue
(Object val) 给定属性值,返回根据 RFC 2253 中指定的规则转义的字符串。getType()
检索此 Rdn 的类型之一。getValue()
检索此 Rdn 的值之一。int
hashCode()
返回此 RDN 的哈希码。int
size()
检索此 Rdn 中属性类型/值对的数量。检索此 Rdn 中包含的类型/值映射的Attributes
视图。toString()
static Object
unescapeValue
(String val) 给定一个根据 RFC 2253 中指定的规则格式化的属性值字符串,返回未格式化的值。
-
构造方法详细信息
-
Rdn
从给定的属性集构造一个 Rdn。参见Attributes
。字符串属性值不被解释为 RFC 2253 格式的 RDN 字符串。也就是说,这些值按字面意义使用(未解析)并假定为未转义。
- 参数:
attrSet
- 包含类型/值映射的非空和非空属性。- 抛出:
InvalidNameException
- 如果attrSet
的内容不能用于构建有效的 RDN。
-
Rdn
- 参数:
rdnString
- 非 null 和非空 RFC2253 格式的字符串。- 抛出:
InvalidNameException
- 如果在解析 rdnString 期间出现语法错误。
-
Rdn
从给定的rdn
构造一个 Rdn。rdn
的内容被简单地复制到新创建的 Rdn 中。- 参数:
rdn
- 要复制的非空 Rdn。
-
Rdn
从给定的属性类型和值构造一个 Rdn。字符串属性值不被解释为 RFC 2253 格式的 RDN 字符串。也就是说,这些值按字面意义使用(未解析)并假定为未转义。- 参数:
type
- 非 null 和非空字符串属性类型。value
- 非空和非空属性值。- 抛出:
InvalidNameException
- 如果类型/值不能用于构造有效的 RDN。- 参见:
-
-
方法详情
-
getValue
检索此 Rdn 的值之一。当 RDN 包含单个类型和值映射时,这是一种获取值的便捷方法,这是常见的 RDN 用法。对于多值 RDN,此方法返回与
getType()
方法返回的类型相对应的值。- 返回:
- 非空属性值。
-
getType
检索此 Rdn 的类型之一。这是一种获取类型的便捷方法,当 RDN 包含单个类型和值映射时,这是常见的 RDN 用法。对于多值 RDN,类型/值对没有定义特定的顺序。在这种情况下,此方法返回类型/值对之一的类型。
getValue()
方法返回与此方法返回的类型对应的值。- 返回:
- 非空属性类型。
-
toString
-
compareTo
将此 Rdn 与指定的 Object 进行比较以获得顺序。返回负整数、零或正整数,因为此 Rdn 小于、等于或大于给定的对象。如果 obj 为 null 或者不是 Rdn 的实例,则抛出 ClassCastException。
RDN 的属性类型和值对相互排列并按字典顺序进行比较。多值 Rdns(例如“ou=Sales+cn=Bob”)中的组件顺序并不重要。
- 指定者:
compareTo
在接口Comparable<Object>
中- 参数:
obj
- 要比较的非空对象。- 返回:
- 负整数、零或正整数,因为此 Rdn 小于、等于或大于给定的对象。
- 抛出:
ClassCastException
- 如果 obj 为空或不是 Rdn。
-
equals
比较指定的 Object 与此 Rdn 是否相等。如果给定对象也是一个 Rdn 并且两个 Rdn 表示相同的属性类型和值映射,则返回 true。多值 Rdns(例如“ou=Sales+cn=Bob”)中的组件顺序并不重要。类型和值相等匹配如下:
- 比较类型是否相等,并忽略它们的大小写。
- 具有不同但等效的引号、转义或 UTF8 十六进制编码用法的字符串值被视为相等。在比较期间忽略值的大小写。
如果 obj 为空或不是 Rdn 的实例,则返回 false。
-
hashCode
public int hashCode()返回此 RDN 的哈希码。两个相等的 RDN(根据 equals 方法)将具有相同的哈希码。 -
toAttributes
检索此 Rdn 中包含的类型/值映射的Attributes
视图。- 返回:
- 包含此 Rdn 的类型/值映射的非空属性。
-
size
public int size()检索此 Rdn 中属性类型/值对的数量。- 返回:
- 此 Rdn 中类型/值对的非负数。
-
escapeValue
给定属性值,返回根据 RFC 2253 中指定的规则转义的字符串。例如,如果 val 是“Sue, Grabbit and Runn”,则此方法返回的转义值是“Sue\, Grabbit and Runn”。
字符串值表示为字符串,二进制值表示为字节数组。
- 参数:
val
- 要转义的非空对象。- 返回:
- 转义字符串值。
- 抛出:
ClassCastException
- 如果 val 不是字符串或字节数组。
-
unescapeValue
给定一个根据 RFC 2253 中指定的规则格式化的属性值字符串,返回未格式化的值。转义和引号被剥离,十六进制编码的 UTF-8 被转换为等效的 UTF-16 字符。以字符串形式返回字符串值,以字节数组形式返回二进制值。合法值和非法值在 RFC 2253 中定义。此方法在接受值方面很慷慨,不会捕获所有非法值。因此,传入非法值不一定会触发
IllegalArgumentException
。- 参数:
val
- 要取消转义的非空字符串。- 返回:
- 未转义的值。
- 抛出:
IllegalArgumentException
- 当提供非法值时。
-