-
- All Superinterfaces:
-
Cloneable
,Serializable
- 所有已知实现类:
-
BasicAttribute
public interface Attribute extends Cloneable, Serializable
此接口表示与命名对象关联的属性。在目录中,命名对象可以与它们相关联。
Attribute
接口表示与命名对象关联的属性。 属性包含0个或更多,可能为null的值。 属性值可以是有序的或无序的(参见isOrdered()
)。 如果值无序,则不允许重复。 如果值是有序的,则允许重复。属性及其值的内容和表示由属性的模式定义。 架构包含有关属性的语法和有关属性的其他属性的信息。 有关如果基础目录服务支持模式,如何获取有关属性的模式信息的详细信息,请参见
getAttributeDefinition()
和getAttributeSyntaxDefinition()
。两个属性的等同性由实现类确定。 一个简单的实现可以使用
Object.equals()
来确定属性值的相等性,而更复杂的实现可以使用模式信息来确定相等性。 类似地,一个实现可能提供静态存储结构,get()
返回传递给其构造函数的值,而另一个实现可能定义get()
和getAll()
。 从目录动态获取值。请注意,对
Attribute
更新(例如添加或删除值)不会影响目录中属性的相应表示形式。 只能使用DirContext
界面中的操作来更新目录。- 从以下版本开始:
- 1.3
- 另请参见:
-
BasicAttribute
-
-
字段汇总
字段 变量和类型 字段 描述 static long
serialVersionUID
使用JNDI 1.1.1中的serialVersionUID实现互操作性。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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实现互操作性。- 另请参见:
- 常数字段值
-
-
方法详细信息
-
getAll
NamingEnumeration<?> getAll() throws NamingException
检索属性值的枚举。 如果在枚举正在进行时添加,更改或删除属性的值,则不会指定此枚举的行为。 如果订购了属性值,则将对订单的项目进行排序。- 结果
- 属性值的非null枚举。 枚举的每个元素都是一个可能为null的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,则将null添加为属性值。 - 结果
- 如果添加了值,则为true; 否则是假的。
-
remove
boolean remove(Object attrval)
从属性中删除指定的值。 如果attrval
不在属性中,则此方法不执行任何操作。 如果属性值是有序的,则删除第一次出现的attrVal
,并且索引大于移除值的属性值向上移向列表的头部(并且它们的索引递减1)。平等由实现决定,可以使用
Object.equals()
或模式信息来确定相等性。- 参数
-
attrval
- 要从此属性中删除的可能为null的值。 如果为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()
制作属性的副本。 副本包含与原始属性相同的属性值:属性值本身不会被克隆。 对副本的更改不会影响原件,反之亦然。- 结果
- 属性的非null副本。
-
isOrdered
boolean isOrdered()
确定此属性的值是否已排序。 如果对属性的值进行排序,则允许重复值。 如果属性的值是无序的,则它们以任何顺序显示,并且没有重复值。- 结果
- 如果此属性的值已排序,则为true;否则为false。 否则是假的。
- 另请参见:
-
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,则返回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的属性值已被替换。 如果属性值为null,则为空。
- 异常
-
IndexOutOfBoundsException
- 如果ix
超出指定范围。 -
IllegalStateException
- 如果attrVal
已存在且属性值无序。
-
-