public interface Attribute extends Cloneable, Serializable
在一个目录中,命名对象可以与它们相关联的属性。 Attribute接口表示与命名对象关联的属性。 属性包含0个或更多,可能为null的值。 属性值可以是有序的或无序的(参见isOrdered() )。 如果值无序,则不允许重复。 如果值被排序,则允许重复。
属性及其值的内容和表示由属性的模式定义 。 该模式包含有关属性的属性的语法和其他属性的信息。 有关如何在基础目录服务支持模式时如何获取有关属性的架构信息的详细信息,请参阅getAttributeDefinition()和getAttributeSyntaxDefinition() 。
两个属性的平等由实现类决定。 简单的实现可以使用Object.equals()来确定属性值的相等性,而更复杂的实现可能会使用模式信息来确定相等性。 类似地,一个实现可以提供静态存储结构,其简单地返回传递给其构造器的值,而另一个实现可以定义get()和getAll() 。 从目录动态获取值。
请注意, Attribute的更新(如添加或删除值)不会影响目录中属性的相应表示形式。 只能使用DirContext接口中的操作来更新目录。
BasicAttribute
Modifier and Type | Field and Description |
---|---|
static long |
serialVersionUID
使用JNDI 1.1.1的serialVersionUID进行互操作。
|
Modifier and Type | Method and Description |
---|---|
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()
检索此属性中的值的数量。
|
static final long serialVersionUID
NamingEnumeration<?> getAll() throws NamingException
NamingException
- 如果在检索值时遇到命名异常。
isOrdered()
Object get() throws NamingException
NamingException
- 如果在检索该值时遇到命名异常。
NoSuchElementException
- 如果此属性没有值。
int size()
String getID()
boolean contains(Object attrVal)
attrVal
- 可能要检查的空值。
如果为null,请检查属性是否具有值为null的属性值。
Object.equals(java.lang.Object)
,
BasicAttribute.equals(java.lang.Object)
boolean add(Object attrVal)
平等由实现决定,可以使用Object.equals()或模式信息来确定相等。
attrVal
- 要添加的新的可能的空值。
如果为null,则添加null作为属性值。
boolean remove(Object attrval)
平等由实现决定,可以使用Object.equals()或模式信息来确定相等。
attrval
- 从该属性中删除的可能的空值。
如果为null,则删除属性值为null。
void clear()
DirContext getAttributeSyntaxDefinition() throws NamingException
例如,即使值可能是Java String对象,其目录语法可能是“可打印字符串”或“电话号码”。 或者一个值可能是一个字节数组,其目录语法是“JPEG”或“证书”。 例如,如果此属性的语法为“JPEG”,则此方法将返回“JPEG”的语法定义。
您可以从语法定义中检索的信息与目录相关。
如果一个实现不支持模式,它应该抛出OperationNotSupportedException。 如果一个实现支持模式,它应该定义这个方法来返回适当的信息。
OperationNotSupportedException
- 如果不支持获取模式。
NamingException
- 如果在获取模式时发生命名异常。
DirContext getAttributeDefinition() throws NamingException
如果一个实现不支持模式,它应该抛出OperationNotSupportedException。 如果一个实现支持模式,它应该定义这个方法来返回适当的信息。
OperationNotSupportedException
- 如果不支持获取模式。
NamingException
- 如果在获取模式时发生命名异常。
Object clone()
boolean isOrdered()
get(int)
,
remove(int)
,
add(int, java.lang.Object)
,
set(int, java.lang.Object)
Object get(int ix) throws NamingException
ix
- 属性值有序列表中的值的索引。
0 <= ix < size()
。
NamingException
- 如果在检索该值时遇到命名异常。
IndexOutOfBoundsException
- 如果
ix在指定范围之外。
Object remove(int ix)
ix
- 要删除的值的索引。
0 <= ix < size()
。
IndexOutOfBoundsException
- 如果
ix在指定范围之外。
void add(int ix, Object attrVal)
ix
- 添加新值的属性值的有序列表中的索引。
0 <= ix <= size()
。
attrVal
- 要添加的可能的null属性值;
如果为null,则为添加的值。
IndexOutOfBoundsException
- 如果
ix在指定范围之外。
IllegalStateException
- 如果属性值是无序的,并且
attrVal是这些值之一。
Object set(int ix, Object attrVal)
ix
- 属性值有序列表中的值的索引。
0 <= ix < size()
。
attrVal
- 要使用的可能为null的属性值。
如果为null,'null'替换旧值。
IndexOutOfBoundsException
- 如果
ix在指定范围之外。
IllegalStateException
- 如果
attrVal已经存在且属性值无序。
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.