|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.naming.ldap.Rdn
public class Rdn
此类表示相对标识名,或 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()
方法在逗号之前添加转义。
可以通过 RFC 2253 中定义的 RDN 的字符串表示形式实例化此类,如以下示例代码所示:
Rdn rdn = new Rdn("cn=Juicy\\, Fruit"); System.out.println(rdn.toString());最后一行将打印 cn=Juicy\, Fruit。
Rdn 的实例的并发多线程只读访问不必是同步的。
除非另有说明,否则将 null 参数传递给此类中的构造方法或方法的行为都会导致抛出 NullPointerException。
构造方法摘要 | |
---|---|
Rdn(Attributes attrSet)
根据给定属性集构造 Rdn。 |
|
Rdn(Rdn rdn)
根据给定 rdn 构造 Rdn。 |
|
Rdn(String rdnString)
根据给定字符串构造 Rdn。 |
|
Rdn(String type,
Object value)
根据给定属性类型和值构造 Rdn。 |
方法摘要 | |
---|---|
int |
compareTo(Object obj)
比较此 Rdn 与指定 Object 的顺序。 |
boolean |
equals(Object obj)
比较指定 Object 与此 Rdn 的相等性。 |
static String |
escapeValue(Object val)
在给定属性值的情况下返回根据 RFC 2253 中指定的规则转义的字符串。 |
String |
getType()
检索一个此 Rdn 的类型。 |
Object |
getValue()
检索一个此 Rdn 的值。 |
int |
hashCode()
返回此 RDN 的哈希码。 |
int |
size()
检索此 Rdn 中的属性类型/值对的数目。 |
Attributes |
toAttributes()
检索此 Rdn 中包含的类型/值映射关系的 Attributes 视图。 |
String |
toString()
以字符串形式返回此 Rdn,该字符串使用由 RFC 2253 定义并在 LdapName 类描述中描述的格式表示。 |
static Object |
unescapeValue(String val)
在给定根据 RFC 2253 中指定的规则进行格式化的属性值字符串的情况下,返回未格式化的值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public Rdn(Attributes attrSet) throws InvalidNameException
Attributes
。
字符串属性值不会被解释为 RFC 2253 格式的 RDN 字符串。即这些值是按字面意义(不解析)使用的,假定被取消了转义。
attrSet
- 包含类型/值映射关系的非 null 非空属性。
InvalidNameException
- 如果无法使用 attrSet 的内容构造有效的 RDN。public Rdn(String rdnString) throws InvalidNameException
LdapName
类描述中描述的规则格式化的字符串。
rdnString
- 非 null 和非空 RFC2253 格式化字符串。
InvalidNameException
- 如果在解析 rdnString 期间发生语法错误。public Rdn(Rdn rdn)
rdn
- 要复制的非 null Rdn。public Rdn(String type, Object value) throws InvalidNameException
type
- 非 null 和非空字符串属性类型。value
- 非 null 和非空属性值。
InvalidNameException
- 如果无法使用类型/值构造有效的 RDN。toString()
方法详细信息 |
---|
public Object getValue()
对于多值 RDN,此方法返回与 getType()
方法返回的类型相对应的值。
public String getType()
对于多值 RDN,类型/值对不具有对其定义的任何特定顺序。在这种情况下,此方法返回一种类型/值对的类型。getValue()
方法返回与此方法返回的类型相对应的值。
public String toString()
LdapName
类描述中描述的格式表示。
Object
中的 toString
public int compareTo(Object obj)
如果 obj 为 null 或者不是一个 Rdn 实例,则抛出 ClassCastException。
将 RDN 的属性类型和值对并肩排列起来,并按字典顺序进行比较。多值 Rdn 中组件的顺序(如 "ou=Sales+cn=Bob")无关紧要。
Comparable<Object>
中的 compareTo
obj
- 要与之比较的非 null 对象。
ClassCastException
- 如果 obj 为 null 或者不是一个 Rdn。
public boolean equals(Object obj)
按照以下方式进行类型和值的相等性匹配:
如果 obj 为 null 或者不是一个 Rdn 实例,则返回 false。
Object
中的 equals
obj
- 要与此 Rdn 进行相等性比较的对象。
hashCode()
public int hashCode()
Object
中的 hashCode
equals(java.lang.Object)
public Attributes toAttributes()
Attributes
视图。
public int size()
public static String escapeValue(Object val)
例如,如果 val 为 "Sue, Grabbit and Runn",则此方法返回的转义值为 "Sue\, Grabbit and Runn"。
将字符串值表示为 String,将二进制值表示为字节数组。
val
- 要转义的非 null 对象。
ClassCastException
- 如果 val 不是 String 或字节数组。public static Object unescapeValue(String val)
合法值和非法值在 RFC 2253 中定义。此方法在接受值方面要求并不严格,它不会捕获所有的非法值。因此,传入非法值时,不一定触发 IllegalArgumentException。
val
- 要取消转义的非 null 字符串。
IllegalArgumentException
- 当提供非法值时。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。