- 所有超级接口:
-
Cloneable
,Serializable
- 所有已知实现类:
-
BasicAttribute
在目录中,命名对象可以具有与其关联的属性。 Attribute
接口表示与命名对象关联的属性。属性包含0个或多个值,可能为null。属性值可以是有序的或无序的(请参阅 isOrdered()
)。如果值是无序的,则不允许重复。如果值是有序的,则允许重复。
属性及其值的内容和表示由属性的 模式 定义。模式包含有关属性的语法和属性的其他属性的信息。有关如何获取有关属性的模式信息的详细信息,请参阅 getAttributeDefinition()
和 getAttributeSyntaxDefinition()
。
两个属性的相等性由实现类确定。简单的实现可以使用 Object.equals()
来确定属性值的相等性,而更复杂的实现可能利用模式信息来确定相等性。同样,一个实现可以提供一个静态存储结构,它只返回传递给其构造函数的值,而另一个实现可能定义 get()
和 getAll()
来动态从目录中获取值。
请注意,对 Attribute
的更新(例如添加或删除值)不会影响目录中属性的相应表示。只能使用 DirContext
接口中的操作来影响目录的更新。
- 自:
- 1.3
- 另请参阅:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
将属性值添加到有序属性值列表中。boolean
向属性添加一个新值。void
clear()
从此属性中删除所有值。clone()
复制属性。boolean
确定属性中是否存在值。get()
检索此属性的一个值。get
(int ix) 从有序属性值列表中检索属性值。getAll()
检索属性值的枚举。检索属性的模式定义。检索与属性关联的语法定义。getID()
检索此属性的ID。boolean
确定此属性的值是否有序。remove
(int ix) 从有序属性值列表中删除属性值。boolean
从属性中删除指定的值。在有序属性值列表中设置属性值。int
size()
检索此属性中的值数量。
-
Field Details
-
serialVersionUID
Deprecated.AserialVersionUID
field in an interface is ineffectual. Do not use; no replacement.为了互操作性,使用 JNDI 1.1.1 中的 serialVersionUID。- 另请参阅:
-
-
Method Details
-
getAll
检索属性值的枚举。如果在枚举进行时添加、更改或删除属性值,则此枚举的行为是未指定的。如果属性值是有序的,则枚举的项将是有序的。- 返回:
- 属性值的非空枚举。枚举的每个元素都是可能为null的对象。如果属性值为null,则元素为null。如果属性没有值,则返回空枚举。
- 抛出:
-
NamingException
- 在检索值时遇到命名异常。 - 另请参阅:
-
get
检索此属性的一个值。如果属性具有多个值且是无序的,则返回其中任何一个值。如果属性具有多个值且是有序的,则返回第一个值。- 返回:
- 代表属性值之一的可能为null的对象。如果属性值为null,则为null。
- 抛出:
-
NamingException
- 在检索值时遇到命名异常。 -
NoSuchElementException
- 如果此属性没有值。
-
size
int size()检索此属性中的值数量。- 返回:
- 此属性中值的非负数。
-
getID
String getID()检索此属性的ID。- 返回:
- 此属性的ID。它不能为空。
-
contains
确定属性中是否存在值。相等性由实现确定,可能使用Object.equals()
或模式信息来确定相等性。- 参数:
-
attrVal
- 要检查的可能为null的值。如果为null,则检查属性是否具有值为null的属性值。 - 返回:
- 如果 attrVal 是此属性的值之一,则返回true;否则返回false。
- 另请参阅:
-
add
向属性添加一个新值。如果属性值是无序的且attrVal
已经在属性中,则此方法不执行任何操作。如果属性值是有序的,则将attrVal
添加到属性值列表的末尾。相等性由实现确定,可能使用
Object.equals()
或模式信息来确定相等性。- 参数:
-
attrVal
- 要添加的新可能为null的值。如果为null,则将null作为属性值添加。 - 返回:
- 如果添加了一个值,则返回true;否则返回false。
-
remove
从属性中删除指定的值。如果attrval
不在属性中,则此方法不执行任何操作。如果属性值是有序的,则删除attrVal
的第一次出现,并将大于已删除值的属性值向列表头部移动(并将它们的索引减一)。相等性由实现确定,可能使用
Object.equals()
或模式信息来确定相等性。- 参数:
-
attrval
- 要从此属性中删除的可能为null的值。如果为null,则删除属性值为null的属性值。 - 返回:
- 如果已删除该值,则返回true;否则返回false。
-
clear
void clear()从此属性中删除所有值。 -
getAttributeSyntaxDefinition
检索与属性关联的语法定义。属性的语法定义指定属性值的格式。请注意,这与属性值作为Java对象的表示不同。语法定义是指目录的 语法 概念。例如,即使值可能是Java String对象,其目录语法可能是“可打印字符串”或“电话号码”。或者值可能是字节数组,其目录语法是“JPEG”或“证书”。例如,如果此属性的语法是“JPEG”,则此方法将返回“JPEG”的语法定义。
您可以从语法定义中检索的信息取决于目录。
如果实现不支持模式,则应抛出 OperationNotSupportedException。如果实现支持模式,则应定义此方法以返回适当的信息。
- 返回:
- 属性的语法定义。如果实现支持模式但此特定属性没有任何模式信息,则为null。
- 抛出:
-
OperationNotSupportedException
- 如果不支持获取模式。 -
NamingException
- 在获取模式时发生命名异常。
-
getAttributeDefinition
检索属性的模式定义。属性的模式定义包含诸如属性是多值还是单值、在比较属性值时要使用的匹配规则等信息。您可以从属性定义中检索的信息取决于目录。如果实现不支持模式,则应抛出 OperationNotSupportedException。如果实现支持模式,则应定义此方法以返回适当的信息。
- 返回:
- 此属性的模式定义。如果实现支持模式但此特定属性没有任何模式信息,则为null。
- 抛出:
-
OperationNotSupportedException
- 如果不支持获取模式。 -
NamingException
- 在获取模式时发生命名异常。
-
clone
Object clone()复制属性。复制包含与原始属性相同的属性值:属性值本身不会被克隆。对副本的更改不会影响原始属性,反之亦然。- 返回:
- 属性的非空副本。
-
isOrdered
boolean isOrdered()确定此属性的值是否有序。如果属性的值是有序的,则允许重复值。如果属性的值是无序的,则以任意顺序呈现,并且没有重复值。- 返回:
- 如果此属性的值有序,则为true;否则为false。
- 参见:
-
get
从有序属性值列表中检索属性值。此方法返回属性值列表中索引为ix
的值。如果属性值是无序的,则此方法返回该索引处的值。- 参数:
-
ix
- 有序属性值列表中值的索引。0 <= ix < size()
。 - 返回:
-
索引为
ix
的可能为null的属性值;如果属性值为null,则返回null。 - 抛出:
-
NamingException
- 检索值时遇到命名异常。 -
IndexOutOfBoundsException
- 如果ix
超出指定范围。
-
remove
从有序属性值列表中删除属性值。此方法删除属性值列表中索引为ix
的值。如果属性值是无序的,则此方法删除该索引处的值。位于索引大于ix
的值向列表前部移动(其索引减一)。- 参数:
-
ix
- 要删除的值的索引。0 <= ix < size()
。 - 返回:
-
已删除的可能为null的属性值列表中索引为
ix
的值;如果属性值为null,则返回null。 - 抛出:
-
IndexOutOfBoundsException
- 如果ix
超出指定范围。
-
add
向有序属性值列表中添加属性值。此方法将attrVal
添加到属性值列表的索引ix
处。位于索引大于或等于ix
的值向列表末尾移动(其索引加一)。如果属性值是无序的并且已经存在attrVal
,则抛出IllegalStateException
。- 参数:
-
ix
- 要添加新值的有序属性值列表中的索引。0 <= ix <= size()
。 -
attrVal
- 要添加的可能为null的属性值;如果为null,则添加null值。 - 抛出:
-
IndexOutOfBoundsException
- 如果ix
超出指定范围。 -
IllegalStateException
- 如果属性值是无序的并且attrVal
是其中之一。
-
set
在有序属性值列表中设置属性值。此方法将属性值列表中索引为ix
的值设置为attrVal
。旧值将被删除。如果属性值是无序的,则此方法将该索引处的值设置为attrVal
,除非attrVal
已经是其中之一。在这种情况下,将抛出IllegalStateException
。- 参数:
-
ix
- 有序属性值列表中值的索引。0 <= ix < size()
。 -
attrVal
- 要使用的可能为null的属性值。如果为null,则用'null'替换旧值。 - 返回:
- 已替换的可能为null的属性值列表中索引为ix的值。如果属性值为null,则返回null。
- 抛出:
-
IndexOutOfBoundsException
- 如果ix
超出指定范围。 -
IllegalStateException
- 如果attrVal
已经存在且属性值是无序的。
-
serialVersionUID
字段是无效的。