public class LdapName extends Object implements Name
该类解决了RFC 2253中发现的一些歧义,如下所示:
传递给LdapName
或返回的字符串名称使用完整的Unicode字符集。 它们还可以包含编码为UTF-8的字符,每个八位字节由三个字符的子字符串(如“\\ B4”)表示。 然而,它们可能不包含编码为UTF-8的字符,每个八位字节由字符串中的单个字符表示:意思是不明确的。
LdapName
将正确解析所有有效的名称,但是在解析无效名称时不会尝试检测到所有可能的违规行为。 接受无效名称是“大方”的。 最终确定名称的“有效性”何时被提供给LDAP服务器,LDAP服务器可以基于诸如其架构信息和互操作性考虑因素来接受或拒绝该名称。
当名称被测试相等时,属性类型,二进制和字符串值都是不区分大小写的。 具有引用,转义或UTF8-hex编码的不同但等效使用的字符串值被认为是相等的。 多值RDN中的组件顺序(例如“ou = Sales + cn = Bob”)并不重要。
LDAP名称的组件,即RDNs的编号。 具有n个RDN的LDAP名称的索引的范围为0到n-1。 该范围可以写为[0,n]。 最右边的RDN是索引0,最左边的RDN是索引n-1。 例如,“CN = Steve Kille,O = Isode Limited,C = GB”的可分辨名称的编号范围从0到2:{C = GB,O = Isode Limited,CN = Steve Kille}。 空的LDAP名称由空的RDN列表表示。
LdapName实例的并发多线程只读访问不需要同步。
除非另有说明,否则将null参数传递给此类中的构造函数或方法将导致抛出NullPointerException。
Constructor and Description |
---|
LdapName(List<Rdn> rdns)
给出其解析的RDN组件构造一个LDAP名称。
|
LdapName(String name)
从给定的可分辨名称构造一个LDAP名称。
|
Modifier and Type | Method and Description |
---|---|
Name |
add(int posn, Rdn comp)
在此LDAP名称中的指定位置添加单个RDN。
|
Name |
add(int posn, String comp)
在此LDAP名称中的指定位置添加单个组件。
|
Name |
add(Rdn comp)
在此LDAP名称的末尾添加单个RDN。
|
Name |
add(String comp)
将单个组件添加到此LDAP名称的末尾。
|
Name |
addAll(int posn, List<Rdn> suffixRdns)
在名称中的指定位置添加名称的RDN。
|
Name |
addAll(int posn, Name suffix)
在名称中的指定位置添加名称的组件。
|
Name |
addAll(List<Rdn> suffixRdns)
将名称的RDN添加到该名称的末尾。
|
Name |
addAll(Name suffix)
将名称的组件按顺序添加到该名称的末尾。
|
Object |
clone()
生成一个这个名字的新副本。
|
int |
compareTo(Object obj)
将此LdapName与指定的对象进行比较。
|
boolean |
endsWith(List<Rdn> rdns)
确定指定的RDN序列是否形成此LDAP名称的后缀。
|
boolean |
endsWith(Name n)
确定此LDAP名称是否以指定的LDAP名称后缀结尾。
|
boolean |
equals(Object obj)
确定两个LDAP名称是否相等。
|
String |
get(int posn)
以此字符串形式检索此LDAP名称的组件。
|
Enumeration<String> |
getAll()
检索此名称的组件作为字符串的枚举。
|
Name |
getPrefix(int posn)
创建一个名称,其组件由此LDAP名称的组件的前缀组成。
|
Rdn |
getRdn(int posn)
检索此LDAP名称的RDN作为Rdn。
|
List<Rdn> |
getRdns()
检索相对可分辨名称的列表。
|
Name |
getSuffix(int posn)
创建一个名称,其组件由此LDAP名称中的组件的后缀组成。
|
int |
hashCode()
计算此LDAP名称的哈希码。
|
boolean |
isEmpty()
确定此LDAP名称是否为空。
|
Object |
remove(int posn)
从此LDAP名称中删除组件。
|
int |
size()
检索此LDAP名称中的组件数。
|
boolean |
startsWith(List<Rdn> rdns)
确定指定的RDN序列是否形成此LDAP名称的前缀。
|
boolean |
startsWith(Name n)
确定此LDAP名称是否以指定的LDAP名称前缀开头。
|
String |
toString()
返回由定义的格式此LDAP名称的字符串表示
RFC 2253和在类描述中描述。
|
public LdapName(String name) throws InvalidNameException
name
-这是根据在定义的规则格式化的非空专有名称
RFC 2253 。
InvalidNameException
- 如果检测到语法违规。
Rdn.escapeValue(Object value)
public boolean isEmpty()
public Enumeration<String> getAll()
public String get(int posn)
get
在接口
Name
posn
- 要检索的组件的基于0的索引。
必须在[0,size())范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public Rdn getRdn(int posn)
posn
- 要检索的基于0的RDN索引。
必须在[0,size())范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name getPrefix(int posn)
getPrefix
在界面
Name
posn
- 要停止的组件的基于0的索引。
必须在[0,size()]范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name getSuffix(int posn)
getSuffix
在界面
Name
posn
- 要开始的组件的基于0的索引。
必须在[0,size()]范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public boolean startsWith(Name n)
startsWith
在界面
Name
n
- 要检查的LDAP名称。
getPrefix(int posn)
public boolean startsWith(List<Rdn> rdns)
rdns
- 要检查的序列号
Rdn 。
public boolean endsWith(Name n)
endsWith
在接口
Name
n
- 要检查的LDAP名称。
getSuffix(int posn)
public boolean endsWith(List<Rdn> rdns)
rdns
- 要检查的序列号
Rdn 。
public Name addAll(Name suffix) throws InvalidNameException
addAll
在界面
Name
suffix
- 要添加的非零组件。
InvalidNameException
- 如果
suffix不是有效的LDAP名称,或者添加组件将违反此LDAP名称的语法规则。
public Name addAll(List<Rdn> suffixRdns)
suffixRdns
- 要添加的非空后缀
Rdn 。
public Name addAll(int posn, Name suffix) throws InvalidNameException
addAll
在界面
Name
suffix
- 要添加的非零组件。
posn
- 添加新组件的索引。
必须在[0,size()]范围内。
InvalidNameException
- 如果
suffix不是有效的LDAP名称,或者添加组件将违反此LDAP名称的语法规则。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name addAll(int posn, List<Rdn> suffixRdns)
suffixRdns
- 要添加的非空后缀
Rdn 。
posn
- 添加后缀RDN的索引。
必须在[0,size()]范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name add(String comp) throws InvalidNameException
add
在界面
Name
comp
- 要添加的非零组件。
InvalidNameException
- 如果在名称末尾添加comp将违反名称的语法。
public Name add(Rdn comp)
comp
- 要添加的非空RDN。
public Name add(int posn, String comp) throws InvalidNameException
add
在界面
Name
comp
- 要添加的非空组件。
posn
- 添加新组件的索引。
必须在[0,size()]范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
InvalidNameException
- 如果在指定位置添加comp将违反名称的语法。
public Name add(int posn, Rdn comp)
comp
- 要添加的非空RDN。
posn
- 添加新RDN的索引。
必须在[0,size()]范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
public Object remove(int posn) throws InvalidNameException
remove
在界面
Name
posn
- 要删除的组件的索引。
必须在[0,size())范围内。
IndexOutOfBoundsException
- 如果posn在指定范围之外。
InvalidNameException
- 如果删除组件将违反名称的语法规则。
public List<Rdn> getRdns()
Rdn
类的实例 。
public Object clone()
public boolean equals(Object obj)
如果一个中的每个RDN等于另一个中的相应RDN,则两个LDAP名称相等。 这意味着两者都具有相同数量的RDN,并且每个RDN的equals()测试对其他名称中的相应RDN返回true。 有关RDN相等性的定义,请参阅Rdn.equals(Object obj)
。
equals
在
Object
obj
- 可能要比较的空对象。
hashCode()
public int compareTo(Object obj)
如果obj为空或不是LdapName的实例,则抛出ClassCastException。
LDAP名称的排序遵循字符串比较的字典规则,其扩展名适用于LDAP名称中的所有RDN。 所有RDN按照指定的顺序排列,并按字典顺序进行比较。 有关RDN比较规则,请参阅Rdn.compareTo(Object obj)
。
如果此LDAP名称在词典上小于obj,则返回一个负数。 如果此LDAP名称在词典上大于obj,则返回正数。
compareTo
在界面
Comparable<Object>
compareTo
在界面
Name
obj
- 与之比较的非空LdapName实例。
ClassCastException
- 如果obj为空或不是LdapName。
Comparable.compareTo(Object)
public int hashCode()
hashCode
在
Object
equals(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.