-
- All Superinterfaces:
-
Cloneable
,Serializable
- 所有已知实现类:
-
BasicAttribute
public interface Attribute extends Cloneable, Serializable
此接口表示与命名对象关联的属性。在一个目录中,命名对象可以与它们相关联的属性。
Attribute
接口表示与命名对象关联的属性。 属性包含0个或更多,可能为null的值。 属性值可以是有序的或无序的(见isOrdered()
)。 如果值无序,则不允许重复。 如果值被排序,则允许重复。属性及其值的内容和表示由属性的模式定义。 该模式包含有关属性的属性的语法和其他属性的信息。 有关如何在基础目录服务支持模式时如何获取有关属性的模式信息的详细信息,请参阅
getAttributeDefinition()
和getAttributeSyntaxDefinition()
。两个属性的平等由实现类决定。 简单的实现可以使用
Object.equals()
来确定属性值的相等性,而更复杂的实现可能会使用模式信息来确定相等性。 类似地,一个实现可以提供静态存储结构,其简单地返回传递给其构造器的值,而另一个实现可以定义get()
和getAll()
。 从目录动态获取值。请注意,对
Attribute
更新(如添加或删除值)不会影响目录中属性的相应表示形式。 目录的更新只能通过DirContext
界面中的操作进行。- 从以下版本开始:
- 1.3
- 另请参见:
-
BasicAttribute
-
-
Field Summary
Fields Modifier and Type Field 描述 static long
serialVersionUID
使用JNDI 1.1.1的serialVersionUID进行互操作。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 void
add(int ix, Object attrVal)
向属性值的有序列表添加属性值。boolean
add(Object attrVal)
向属性添加一个新值。void
clear()
从此属性中删除所有值。Object
clone()
制作属性的副本。boolean
contains(Object attrVal)
确定值是否在属性中。Object
get()
检索此属性值之一。Object
get(int ix)
从有序的属性值列表中检索属性值。NamingEnumeration<?>
getAll()
检索属性值的枚举。DirContext
getAttributeDefinition()
检索属性的模式定义。DirContext
getAttributeSyntaxDefinition()
检索与属性相关联的语法定义。String
getID()
检索此属性的ID。boolean
isOrdered()
确定此属性的值是否被排序。Object
remove(int ix)
从有序的属性值列表中删除属性值。boolean
remove(Object attrval)
从属性中删除指定的值。Object
set(int ix, Object attrVal)
在属性值的有序列表中设置属性值。int
size()
检索此属性中的值的数量。
-
-
-
字段详细信息
-
serialVersionUID
static final long serialVersionUID
使用JNDI 1.1.1的serialVersionUID进行互操作。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
getAll
NamingEnumeration<?> getAll() throws NamingException
检索属性值的枚举。 如果在枚举过程中添加,更改或删除属性的值,则此枚举的行为是未指定的。 如果属性值被排序,则枚举的项将被排序。- 结果
- 属性值的非空枚举。 枚举的每个元素都是可能为空的Object。 对象的类是属性值的类。 如果属性的值为null,则该元素为null。 如果属性具有零值,则返回一个空的枚举。
- 异常
-
NamingException
- 如果在检索值时遇到命名异常。 - 另请参见:
-
isOrdered()
-
get
Object get() throws NamingException
检索此属性值之一。 如果属性具有多个值且无序,则返回任何一个值。 如果属性具有多个值并被排序,则返回第一个值。- 结果
- 表示属性值之一的可能为null的对象。 如果属性的值为null,则为null。
- 异常
-
NamingException
- 如果在检索该值时遇到命名异常。 -
NoSuchElementException
- 如果此属性没有值。
-
size
int size()
检索此属性中的值的数量。- 结果
- 此属性中的非负数值。
-
getID
String getID()
检索此属性的ID。- 结果
- 该属性的id。 它不能为空。
-
contains
boolean contains(Object attrVal)
确定值是否在属性中。 平等由实现决定,可以使用Object.equals()
或模式信息来确定相等。- 参数
-
attrVal
- 可能的null值要检查。 如果为null,请检查属性是否具有值为null的属性值。 - 结果
- 如果attrVal是此属性的值之一,则为true; 否则为假。
- 另请参见:
-
Object.equals(java.lang.Object)
,BasicAttribute.equals(java.lang.Object)
-
add
boolean add(Object attrVal)
向属性添加一个新值。 如果属性值无序,并且attrVal
中已有attrVal
,则此方法不执行任何操作。 如果属性值被排序,attrVal
添加到属性值列表的末尾。平等由实现决定,可以使用
Object.equals()
或模式信息来确定相等。- 参数
-
attrVal
- 要添加的新的可能的空值。 如果为null,则添加null作为属性值。 - 结果
- 如果添加了值,则为true; 否则为假。
-
remove
boolean remove(Object attrval)
从属性中删除指定的值。 如果attrval
不在属性中,则此方法不执行任何操作。 如果属性值被排序,则删除第一次出现attrVal
,并且索引大于移除值的属性值向上移动到列表的头部(并且它们的索引递减1)。平等由实现决定,可以使用
Object.equals()
或模式信息来确定相等。- 参数
-
attrval
- 从该属性中删除的可能的空值。 如果为null,则删除属性值为null。 - 结果
- 如果值被删除,则为true; 否则为假。
-
clear
void clear()
从此属性中删除所有值。
-
getAttributeSyntaxDefinition
DirContext getAttributeSyntaxDefinition() throws NamingException
检索与属性相关联的语法定义。 属性的语法定义指定属性值的格式。 请注意,这不同于属性值的表示形式作为Java对象。 语法定义是指目录的语法概念。例如,即使值可能是Java String对象,其目录语法可能是“可打印字符串”或“电话号码”。 或者一个值可能是一个字节数组,其目录语法是“JPEG”或“证书”。 例如,如果此属性的语法为“JPEG”,则此方法将返回“JPEG”的语法定义。
您可以从语法定义中检索的信息与目录相关。
如果一个实现不支持模式,它应该抛出OperationNotSupportedException。 如果一个实现支持模式,它应该定义这个方法来返回适当的信息。
- 结果
- 属性的语法定义。 如果实现支持模式,则该值为空,但该特定属性没有任何模式信息。
- 异常
-
OperationNotSupportedException
- 如果不支持获取模式。 -
NamingException
- 如果获取模式时发生命名异常。
-
getAttributeDefinition
DirContext getAttributeDefinition() throws NamingException
检索属性的模式定义。 属性的模式定义包含诸如属性是多值的还是单值的信息,在比较属性值时使用的匹配规则。 您可以从属性定义检索的信息与目录相关。如果一个实现不支持模式,它应该抛出OperationNotSupportedException。 如果一个实现支持模式,它应该定义这个方法来返回适当的信息。
- 结果
- 此属性的模式定义。 如果实现支持模式,则该值为空,但该特定属性没有任何模式信息。
- 异常
-
OperationNotSupportedException
- 如果不支持获取模式。 -
NamingException
- 如果在获取模式时发生命名异常。
-
clone
Object clone()
制作属性的副本。 该副本包含与原始属性相同的属性值:属性值本身不被克隆。 副本的更改不会影响原始文件,反之亦然。- 结果
- 属性的非空拷贝。
-
isOrdered
boolean isOrdered()
确定此属性的值是否被排序。 如果一个属性的值被排序,则允许重复的值。 如果一个属性的值是无序的,它们以任何顺序呈现,并且没有重复的值。- 结果
- 如果此属性的值被排序,则为true; 否则为假。
- 另请参见:
-
get(int)
,remove(int)
,add(int, java.lang.Object)
,set(int, java.lang.Object)
-
get
Object get(int ix) throws NamingException
从有序的属性值列表中检索属性值。 该方法返回属性值列表的ix
索引值。 如果属性值是无序的,则此方法返回恰好在该索引处的值。- 参数
-
ix
- 属性值有序列表中的值的索引。0 <= ix < size()
。 - 结果
-
索引号为
ix
的可能为零的属性值; 如果属性值为null,则为null。 - 异常
-
NamingException
- 如果在检索该值时遇到命名异常。 -
IndexOutOfBoundsException
- 如果ix
在指定范围之外。
-
remove
Object remove(int ix)
从有序的属性值列表中删除属性值。 此方法将删除属性值列表中的ix
索引的值。 如果属性值是无序的,则此方法将删除恰好在该索引处的值。 位于大于ix
指数的数值向上移动到列表的前面(并且它们的指数减1)。- 参数
-
ix
- 要删除的值的索引。0 <= ix < size()
。 - 结果
-
索引号为
ix
的可能为null的属性值被删除; 如果属性值为null,则为null。 - 异常
-
IndexOutOfBoundsException
- 如果ix
在指定范围之外。
-
add
void add(int ix, Object attrVal)
向属性值的有序列表添加属性值。 此方法将attrVal
添加到索引号为ix
的属性值列表。 位于或大于ix
指数的价值向下移动到列表的末尾(并且其指数增加1)。 如果属性值无序且已经有attrVal
,则抛出IllegalStateException
。- 参数
-
ix
- 添加新值的属性值的有序列表中的索引。0 <= ix <= size()
。 -
attrVal
- 可能null属性值添加; 如果为null,则为添加的值。 - 异常
-
IndexOutOfBoundsException
- 如果ix
在指定范围之外。 -
IllegalStateException
- 如果属性值是无序的,并且attrVal
是这些值之一。
-
set
Object set(int ix, Object attrVal)
在属性值的有序列表中设置属性值。 此方法将属性值列表的ix
索引值设置为attrVal
。 旧值被删除。 如果属性值无序,则该方法将该索引处的值设置为attrVal
,除非attrVal
是其中一个值。 在这种情况下,抛出IllegalStateException
。- 参数
-
ix
- 属性值的有序列表中的值的索引。0 <= ix < size()
。 -
attrVal
- 要使用的可能为null的属性值。 如果为null,'null'替换旧值。 - 结果
- 索引ix上可能为null的属性值被替换。 如果属性值为空,则为空。
- 异常
-
IndexOutOfBoundsException
- 如果ix
在指定范围之外。 -
IllegalStateException
- 如果attrVal
已经存在且属性值无序。
-
-