public class CompoundName extends Object implements Name
化合物名称的组成部分被编号。 具有N个成分的化合物名称的索引范围从0到但不包括N.该范围可以写为[0,N]。 最重要的组件是索引0.空的化合物名称没有组件。
复合名称的字符串形式遵循上述语法。 当化合物名称的组成部分变成其字符串表示形式时,应用上述保留的语法规则(例如,嵌入式分隔符被转义或引用),以便当相同的字符串被解析时,它将产生原始化合物的相同组件名称。
Modifier and Type | Field and Description |
---|---|
protected javax.naming.NameImpl |
impl
这个复合名称的实现。
|
protected Properties |
mySyntax
此化合物名称的语法属性。
|
Modifier | Constructor and Description |
---|---|
protected |
CompoundName(Enumeration<String> comps, Properties syntax)
使用comps和syntax中指定的组件构造一个新的复合名称实例。
|
|
CompoundName(String n, Properties syntax)
通过使用提供的语法属性指定的语法解析字符串n来构造新的复合名称实例。
|
Modifier and Type | Method and Description |
---|---|
Name |
add(int posn, String comp)
在此化合物名称中的指定位置添加单个组件。
|
Name |
add(String comp)
将单个组件添加到此化合物名称的末尾。
|
Name |
addAll(int posn, Name n)
在此复合名称中的指定位置添加化合物名称的组成部分。
|
Name |
addAll(Name suffix)
将复合名称的组件按顺序添加到该化合物名称的末尾。
|
Object |
clone()
创建此复合名称的副本。
|
int |
compareTo(Object obj)
将此CompoundName与指定的对象进行比较以进行订购。
|
boolean |
endsWith(Name n)
确定复合名称是否是此化合物名称的后缀。
|
boolean |
equals(Object obj)
确定obj是否在语法上等于此化合物名称。
|
String |
get(int posn)
检索此化合物名称的组件。
|
Enumeration<String> |
getAll()
检索此复合名称的组件作为字符串的枚举。
|
Name |
getPrefix(int posn)
创建一个复合名称,其组成部分由此化合物名称中的组件的前缀组成。
|
Name |
getSuffix(int posn)
创建一个复合名称,其组成部分由此化合物名称中的组件的后缀组成。
|
int |
hashCode()
计算此化合物名称的哈希码。
|
boolean |
isEmpty()
确定此化合物名称是否为空。
|
Object |
remove(int posn)
从此化合物名称中删除组件。
|
int |
size()
检索此化合物名称中的组件数。
|
boolean |
startsWith(Name n)
确定化合物名称是否是此化合物名称的前缀。
|
String |
toString()
使用复合名称的语法规则生成此化合物名称的字符串表示形式。
|
protected transient javax.naming.NameImpl impl
protected transient Properties mySyntax
protected CompoundName(Enumeration<String> comps, Properties syntax)
comps
- 要添加的组件的非空枚举。
枚举的每个元素都是String类。
枚举将用于提取其元素。
syntax
- 指定此化合物名称的语法的非空属性。
请参阅属性内容的类描述。
public CompoundName(String n, Properties syntax) throws InvalidNameException
n
- 要解析的非空字符串。
syntax
- 指定此复合名称语法的属性的非空列表。
请参阅属性内容的类描述。
InvalidNameException
-如果“N”违反由指定的语法
syntax
。
public String toString()
public boolean equals(Object obj)
平等也是根据这个化合物名称的语法来定义的。 当比较两个组件相等时,CompoundName的默认实现使用语法属性jndi.syntax.ignorecase和jndi.syntax.trimblanks。 如果忽略大小写,则具有相同字符序列但具有不同情况的两个字符串被认为是相等的。 如果正在修剪空白,则为了比较的目的,忽略前导和尾随空格。
两个组合名称必须具有相同数量的组件。
实现注意:目前,两个复合名称的语法属性不相等。 他们可能在未来。
equals
在类别
Object
obj
- 可比较的空对象。
compareTo(java.lang.Object obj)
public int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public Object clone()
public int compareTo(Object obj)
如果obj为null或者不是CompoundName的实例,则抛出ClassCastException。
请参阅equals()表示两个复合名称相等的含义。 如果两个复合名称相等,则返回0。
复合名称的排序取决于复合名称的语法。 默认情况下,它们遵循用于字符串比较的字典规则,其扩展名适用于复合名称中的所有组件,并且各个组件的比较受jndi.syntax.ignorecase和jndi.syntax.trimblanks属性的影响,与它们影响equals()。 如果此复合名称比词汇“词典”小,则返回一个负数。 如果这个复合名称比词典“字典”大,则返回正数。
实现注意:当检查顺序时,两个复合名称的语法属性不进行比较。 他们可能在未来。
compareTo
在界面
Comparable<Object>
compareTo
在界面
Name
obj
- 要比较的非空对象。
ClassCastException
- 如果obj不是CompoundName。
equals(java.lang.Object)
public boolean isEmpty()
public Enumeration<String> getAll()
public String get(int posn)
get
在界面
Name
posn
- 要检索的组件的基于0的索引。
必须在[0,size())范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name getPrefix(int posn)
getPrefix
在接口
Name
posn
- 要停止的组件的基于0的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name getSuffix(int posn)
getSuffix
在界面
Name
posn
- 要启动的组件的基于0的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public boolean startsWith(Name n)
实现注意:当进行比较时,目前不使用n的语法属性。 他们可能在未来。
startsWith
在界面
Name
n
- 要检查的可能为null的复合名称。
public boolean endsWith(Name n)
实现注意:当进行比较时,目前不使用n的语法属性。 他们可能在未来。
public Name addAll(Name suffix) throws InvalidNameException
实现注意:目前未使用或检查后缀的语法属性。 他们可能在未来。
addAll
在接口
Name
suffix
- 要添加的非零组件。
InvalidNameException
- 如果后缀不是复合名称,或者添加组件违反了此化合物名称的语法(例如超过组件数量)。
public Name addAll(int posn, Name n) throws InvalidNameException
实现注意:目前未使用或检查后缀的语法属性。 他们可能在未来。
addAll
在界面
Name
n
- 要添加的非零组件。
posn
- 添加新组件的名称中的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
InvalidNameException
- 如果n不是复合名称,或者添加组件违反了此化合物名称的语法(例如超过组件数量)。
public Name add(String comp) throws InvalidNameException
add
在接口
Name
comp
- 要添加的非空组件。
InvalidNameException
- 如果在名称末尾添加comp将违反复合名称的语法。
public Name add(int posn, String comp) throws InvalidNameException
add
在接口
Name
comp
- 要添加的非零组件。
posn
- 添加新组件的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
InvalidNameException
- 如果在指定位置添加comp将违反复合名称的语法。
public Object remove(int posn) throws InvalidNameException
remove
在界面
Name
posn
- 要删除的组件的索引。
必须在[0,size())范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外(包括化合物名称为空的情况)。
InvalidNameException
- 如果删除组件将违反化合物名称的语法。