java.lang.Object javax.naming.CompositeName
此类表示一个复合名称,即一个跨多个名称空间组件名称的序列。每个组件都是一个取自命名系统名称空间的字符串名称。如果组件取自层次名称空间,则可以通过使用 CompoundName 类将该组件进一步解析成其原子部分。
复合名称的组件都已编号。带 N 个组件的复合名称的索引在 0 到 N(但不包括 N)的范围内变动。可将该范围写为 [0,N)。最重要的组件位于索引 0 处。空复合名称没有组件。
在比较两个复合名称时,字符的大小写很重要。
前导组件分隔符(复合名称字符串以分隔符开始)表示一个前导空组件(由空字符串组成的组件)。尾部组件分隔符(复合名称以分隔符结束)表示一个尾部空组件。相邻的组件分隔符表示一个空组件。
字符串名称 | CompositeName |
---|---|
"" | {} (the empty name == new CompositeName("") == new CompositeName()) |
"x" | {"x"} |
"x/y" | {"x", "y"} |
"x/" | {"x", ""} |
"/x" | {"", "x"} |
"/" | {""} |
"//" | {"", ""} |
"/x/" | {"", "x", ""} |
"x//y" | {"x", "", "y"} |
字符串名称 | CompositeNames |
---|---|
"x/y" + "/" = x/y/ | {"x", "y"} + {""} = {"x", "y", ""} |
"" + "x" = "x" | {} + {"x"} = {"x"} |
"/" + "x" = "/x" | {""} + {"x"} = {"", "x"} |
"x" + "" + "" = "x" | {"x"} + {} + {} = {"x"} |
构造方法摘要 | |
---|---|
|
CompositeName() 构造一个新的空复合名称。 |
protected |
CompositeName(Enumeration<String> comps) 使用由 'comps' 指定的组件构造一个新的复合名称实例。 |
|
CompositeName(String n) 通过使用复合名称语法(从左到右,用斜杠分隔)解析字符串 n 来构造一个新的复合名称实例。 |
方法摘要 | |
---|---|
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) 比较此 CompositeName 与指定 Object 的顺序。 |
boolean |
endsWith(Name n) 确定某一复合名称是否是此复合名称的后缀。 |
boolean |
equals(Object 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() 生成此复合名称的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
protected CompositeName(Enumeration<String> comps)
comps
- 包含新复合名称组件的非 null 枚举。每个元素都属于 String 类。该枚举将被用来提取其元素。
public CompositeName(String n) throws InvalidNameException
n
- 要解析的非 null 字符串。
InvalidNameException
- 如果 n 的复合名称语法无效。
public CompositeName()
isEmpty()
时将返回 true。
方法详细信息 |
---|
public String toString()
public boolean equals(Object obj)
obj
- 要比较的可能为 null 的对象。
hashCode()
public int hashCode()
equals(java.lang.Object)
public int compareTo(Object obj)
如果 obj 为 null 或者不是一个 CompositeName 实例,则抛出 ClassCastException。
关于这对两个复合名称相等性的意义,请参见 equals()。如果两个复合名称是相等的,则返回 0。
复合名称的排序遵从字符串比较的字典规则,并将此扩展到应用于复合名称中的所有组件。效果就像将所有组件按照指定的顺序排列起来,并在两个队列上应用字典规则。如果此复合名称“按字典顺序”小于 obj,则返回一个负数。如果此复合名称“按字典顺序”大于 obj,则返回一个正数。
Comparable<Object>
中的
compareTo
Name
中的
compareTo
obj
- 要与之比较的非 null 对象。
ClassCastException
- 如果 obj 不是 CompositeName。
Comparable.compareTo(Object)
public Object clone()
Cloneable
public int size()
public boolean isEmpty()
public Enumeration<String> getAll()
public String get(int posn)
posn
- 要检索的从 0 开始的组件索引。该索引必须在范围 [0,size()) 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围。
public Name getPrefix(int posn)
posn
- 从 0 开始的组件索引,在该索引处停止。该索引必须在范围 [0,size()] 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围。
public Name getSuffix(int posn)
posn
- 从 0 开始的组件索引,在该索引处开始。该索引必须在范围 [0,size()] 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围。
public boolean startsWith(Name n)
Name
中的
startsWith
n
- 要检查的可能为 null 的名称。
public boolean endsWith(Name n)
n
- 要检查的可能为 null 的名称。
public Name addAll(Name suffix) throws InvalidNameException
suffix
- 要添加的非 null 组件。
InvalidNameException
- 如果后缀不是一个复合名称。
public Name addAll(int posn, Name n) throws InvalidNameException
n
- 要添加的非 null 组件。
posn
- 此名称中的索引,将在该索引处添加新组件。该索引必须在范围 [0,size()] 内。
InvalidNameException
- 如果 n 不是一个复合名称。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围。
public Name add(String comp) throws InvalidNameException
comp
- 要添加的非 null 组件。
InvalidNameException
- 如果在该名称末尾添加 comp 违反该名称的语法。
public Name add(int posn, String comp) throws InvalidNameException
comp
- 要添加的非 null 组件。
posn
- posn 在其所在位置处添加新组件的索引。该索引必须在范围 [0,size()) 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围。
InvalidNameException
- 如果在指定位置添加 comp 违反该名称的语法。
public Object remove(int posn) throws InvalidNameException
posn
- 要删除的组件的索引。该索引必须在范围 [0,size()) 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围(包括复合名称为空的情况)。
InvalidNameException
- 如果删除组件违反该名称的语法。