public interface Name
Name 接口表示一个一般名称,即一个有序的组件序列。该名称可以是一个复合名称(跨多个名称空间的名称),或是一个组合名称(在各个分层的命名系统中使用的名称)。
可以有不同的 Name 实现;例如,复合名称、URL 或特定于名称空间的组合名称。
名称的组件都已编号。带 N 个组件的名称的索引在 0 到 N(但不包括 N)的范围内变动。可将该范围写为 [0,N)。最重要的组件位于索引 0 处。空名称没有组件。
此接口中的所有方法都不接收 null 作为一个参数(名称和名称组件)的有效值。同样,返回名称或名称组件的方法绝不会返回 null。
Name 的实例在不是只读访问时无法与并发多线程访问同步。
字段摘要 | |
---|---|
static long |
serialVersionUID 为指示与以前的类版本序列化兼容而设置的类指纹。 |
方法摘要 | |
---|---|
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) 比较此名称与另一个名称的顺序。 |
boolean |
endsWith(Name n) 确定此名称是否以某一指定后缀结束。 |
String |
get(int posn) 检索此名称的组件。 |
Enumeration<String> |
getAll() 以字符串枚举的形式检索此名称的组件。 |
Name |
getPrefix(int posn) 创建一个名称,其组件由此名称中组件的前缀组成。 |
Name |
getSuffix(int posn) 创建一个名称,其组件由此名称中组件的后缀组成。 |
boolean |
isEmpty() 确定此名称是否为空。 |
Object |
remove(int posn) 从此名称中移除一个组件。 |
int |
size() 返回此名称中的组件数。 |
boolean |
startsWith(Name n) 确定此名称是否从某一指定前缀开始。 |
字段详细信息 |
---|
static final long serialVersionUID
方法详细信息 |
---|
Object clone()
Object.clone()
int compareTo(Object obj)
对于 Object.equals(),名称排序的概念取决于实现此接口的类。例如,该排序可能基于名称组件的字典顺序进行。该名称的特定属性(比如对待大小写的方式)可能影响排序。通常,无法比较两个不同类的名称。
Comparable<Object>
中的
compareTo
obj
- 要与之比较的非 null 对象。
ClassCastException
- 如果 obj 不是一个可以与此名称进行比较的类型的
Name
Comparable.compareTo(Object)
int size()
boolean isEmpty()
Enumeration<String> getAll()
String get(int posn)
posn
- 要检索的从 0 开始的组件索引。该索引必须在范围 [0,size()) 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围
Name getPrefix(int posn)
posn
- 从 0 开始的组件索引,在该索引处停止。该索引必须在范围 [0,size()] 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围
Name getSuffix(int posn)
posn
- 从 0 开始的组件索引,从该索引处开始。该索引必须在范围 [0,size()] 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围
boolean startsWith(Name n)
n
- 要检查的名称
boolean endsWith(Name n)
n
- 要检查的名称
Name addAll(Name suffix) throws InvalidNameException
suffix
- 要添加的组件
InvalidNameException
- 如果
suffix 不是一个有效名称,或者添加组件将违反此名称的语法规则
Name addAll(int posn, Name n) throws InvalidNameException
n
- 要添加的组件
posn
- 此名称中的索引,将在该索引处添加新组件。该索引必须在范围 [0,size()] 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围
InvalidNameException
- 如果
n 不是一个有效名称,或者添加组件将违反此名称的语法规则
Name add(String comp) throws InvalidNameException
comp
- 要添加的组件
InvalidNameException
- 如果添加
comp 将违反此名称的语法规则
Name add(int posn, String comp) throws InvalidNameException
comp
- 要添加的组件
posn
- 将在其所在位置处添加新组件的索引。该索引必须在范围 [0,size()] 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围
InvalidNameException
- 如果添加
comp 将违反此名称的语法规则
Object remove(int posn) throws InvalidNameException
posn
- 要移除的组件的索引。该索引必须在范围 [0,size()) 内。
ArrayIndexOutOfBoundsException
- 如果 posn 超出指定范围
InvalidNameException
- 如果删除组件将违反该名称的语法规则