- 所有父级接口:
Cloneable
,Serializable
- 所有已知的实现类:
BasicAttribute
在目录中,命名对象可以具有与其关联的属性。 Attribute
接口表示与命名对象关联的属性。一个属性包含 0 个或多个值,可能为空值。属性值可以是有序的或无序的(参见 isOrdered()
)。如果值是无序的,则不允许重复。如果值是有序的,则允许重复。
属性及其值的内容和表示由属性的 schema 定义。架构包含有关属性语法的信息以及有关属性的其他属性。如果底层目录服务支持模式,请参阅 getAttributeDefinition()
和 getAttributeSyntaxDefinition()
以了解有关如何获取有关属性的模式信息的详细信息。
两个属性的相等性由实现类决定。一个简单的实现可以使用 Object.equals()
来确定属性值的相等性,而更复杂的实现可能会使用模式信息来确定相等性。类似地,一个实现可能会提供一个静态存储结构,它只返回传递给其构造函数的值,而另一个实现可能会定义 get()
和 getAll()
。从目录中动态获取值。
请注意,对 Attribute
的更新(例如添加或删除值)不会影响目录中属性的相应表示。只能使用 DirContext
接口中的操作来更新目录。
- 自从:
- 1.3
- 参见:
-
字段摘要
字段 -
方法总结
修饰符和类型方法描述void
将属性值添加到属性值的有序列表中。boolean
向属性添加新值。void
clear()
从此属性中删除所有值。clone()
制作属性的副本。boolean
确定值是否在属性中。get()
检索此属性的值之一。get
(int ix) 从有序的属性值列表中检索属性值。getAll()
检索属性值的枚举。检索属性的架构定义。检索与属性关联的语法定义。getID()
检索此属性的 ID。boolean
确定此属性的值是否有序。remove
(int ix) 从有序的属性值列表中删除一个属性值。boolean
从属性中删除指定的值。在有序的属性值列表中设置一个属性值。int
size()
检索此属性中的值数。
-
字段详细信息
-
serialVersionUID
已弃用。接口中的serialVersionUID
字段无效。不使用;没有替代品。使用 JNDI 1.1.1 中的 serialVersionUID 实现互操作性。- 参见:
-
-
方法详情
-
getAll
检索属性值的枚举。如果在枚举过程中添加、更改或删除属性的值,则此枚举的行为未指定。如果属性值是有序的,则枚举的项目也将是有序的。- 返回:
- 属性值的非空枚举。枚举的每个元素都是一个可能为空的对象。对象的类是属性值的类。如果属性的值为空,则元素为空。如果该属性具有零值,则返回一个空枚举。
- 抛出:
NamingException
- 如果在检索值时遇到命名异常。- 参见:
-
get
检索此属性的值之一。如果属性有多个值且无序,则返回任何一个值。如果属性有多个值且已排序,则返回第一个值。- 返回:
- 表示属性值之一的可能为 null 的对象。如果属性的值为 null,则它为 null。
- 抛出:
NamingException
- 如果在检索值时遇到命名异常。NoSuchElementException
- 如果此属性没有值。
-
size
int size()检索此属性中的值数。- 返回:
- 此属性中值的非负数。
-
getID
String getID()检索此属性的 ID。- 返回:
- 此属性的 ID。它不能为空。
-
contains
确定值是否在属性中。相等性由实现决定,它可以使用Object.equals()
或模式信息来确定相等性。- 参数:
attrVal
- 要检查的可能为空值。如果为null,检查该属性是否有值为null的属性值。- 返回:
- 如果 attrVal 是此属性的值之一,则为真;否则为假。
- 参见:
-
add
向属性添加新值。如果属性值是无序的并且attrVal
已经在属性中,则此方法不执行任何操作。如果属性值已排序,attrVal
将添加到属性值列表的末尾。相等性由实现决定,它可以使用
Object.equals()
或模式信息来确定相等性。- 参数:
attrVal
- 要添加的新的可能为空的值。如果为 null,则将 null 添加为属性值。- 返回:
- 如果添加了值,则为真;否则为假。
-
remove
从属性中删除指定的值。如果attrval
不在属性中,则此方法不执行任何操作。如果属性值是有序的,则删除第一次出现的attrVal
,并且索引大于删除值的属性值向上移动到列表的头部(并且它们的索引递减一个)。相等性由实现决定,它可以使用
Object.equals()
或模式信息来确定相等性。- 参数:
attrval
- 要从此属性中删除的可能为空的值。如果为 null,则删除为 null 的属性值。- 返回:
- 如果删除了该值,则为真;否则为假。
-
clear
void clear()从此属性中删除所有值。 -
getAttributeSyntaxDefinition
检索与属性关联的语法定义。属性的语法定义指定属性值的格式。请注意,这与属性值作为 Java 对象的表示不同。语法定义是指目录的概念 syntax 。例如,即使值可能是 Java String 对象,其目录语法也可能是“Printable String”或“Telephone Number”。或者一个值可能是一个字节数组,其目录语法是“JPEG”或“证书”。例如,如果此属性的语法是“JPEG”,则此方法将返回“JPEG”的语法定义。
您可以从语法定义中检索的信息是依赖于目录的。
如果一个实现不支持模式,它应该抛出 OperationNotSupportedException。如果一个实现确实支持模式,它应该定义这个方法来返回适当的信息。
- 返回:
- 属性的语法定义。如果实现支持模式但此特定属性没有任何模式信息,则为空。
- 抛出:
OperationNotSupportedException
- 如果不支持获取模式。NamingException
- 如果在获取架构时发生命名异常。
-
getAttributeDefinition
检索属性的架构定义。属性的模式定义包含诸如属性是多值还是单值、比较属性值时要使用的匹配规则等信息。您可以从属性定义中检索的信息是依赖于目录的。如果一个实现不支持模式,它应该抛出 OperationNotSupportedException。如果一个实现确实支持模式,它应该定义这个方法来返回适当的信息。
- 返回:
- 此属性的架构定义。如果实现支持模式但此特定属性没有任何模式信息,则为空。
- 抛出:
OperationNotSupportedException
- 如果不支持获取模式。NamingException
- 如果在获取架构时发生命名异常。
-
clone
Object clone()制作属性的副本。副本包含与原始属性相同的属性值:属性值本身不是克隆的。对副本的更改不会影响原始文件,反之亦然。- 返回:
- 属性的非空副本。
-
isOrdered
boolean isOrdered()确定此属性的值是否有序。如果属性的值是有序的,则允许重复值。如果一个属性的值是无序的,它们会以任何顺序出现并且没有重复值。- 返回:
- 如果此属性的值是有序的,则为真;否则为假。
- 参见:
-
get
从有序的属性值列表中检索属性值。此方法返回属性值列表的ix
索引处的值。如果属性值是无序的,则此方法返回恰好位于该索引处的值。- 参数:
ix
- 属性值有序列表中值的索引。0 <= ix < size()
。- 返回:
-
索引
ix
处的可能为空的属性值;如果属性值为 null,则为 null。 - 抛出:
NamingException
- 如果在检索值时遇到命名异常。IndexOutOfBoundsException
- 如果ix
超出指定范围。
-
remove
从有序的属性值列表中删除一个属性值。此方法删除属性值列表的ix
索引处的值。如果属性值是无序的,则此方法会删除恰好位于该索引处的值。位于大于ix
的索引处的值将向上移动到列表的前面(并且它们的索引递减 1)。- 参数:
ix
- 要删除的值的索引。0 <= ix < size()
。- 返回:
-
已删除的索引
ix
处的可能为空的属性值;如果属性值为 null,则为 null。 - 抛出:
IndexOutOfBoundsException
- 如果ix
超出指定范围。
-
add
将属性值添加到属性值的有序列表中。此方法将attrVal
添加到索引ix
处的属性值列表。位于或大于ix
的索引处的值向下移动到列表的末尾(并且它们的索引递增 1)。如果属性值是无序的并且已经有attrVal
,则抛出IllegalStateException
。- 参数:
ix
- 在属性值的有序列表中添加新值的索引。0 <= ix <= size()
。attrVal
- 要添加的可能为空的属性值;如果为 null,则 null 是添加的值。- 抛出:
IndexOutOfBoundsException
- 如果ix
超出指定范围。IllegalStateException
- 如果属性值是无序的并且attrVal
是这些值之一。
-
set
在有序的属性值列表中设置一个属性值。此方法将属性值列表的ix
索引处的值设置为attrVal
。旧值被删除。如果属性值是无序的,则此方法会将恰好位于该索引处的值设置为attrVal
,除非attrVal
已经是其中一个值。在这种情况下,将抛出IllegalStateException
。- 参数:
ix
- 属性值有序列表中值的索引。0 <= ix < size()
。attrVal
- 要使用的可能为空的属性值。如果为空,“空”将替换旧值。- 返回:
- 索引 ix 处被替换的可能为空的属性值。如果属性值为空,则为空。
- 抛出:
IndexOutOfBoundsException
- 如果ix
超出指定范围。IllegalStateException
- 如果attrVal
已经存在并且属性值是无序的。
-
serialVersionUID
字段无效。