- java.lang.Object
-
- javax.naming.directory.BasicAttribute
-
- 实现的所有接口
-
Serializable,Cloneable,Attribute
public class BasicAttribute extends Object implements Attribute
此类提供Attribute接口的基本实现。此实现不支持架构方法
getAttributeDefinition()和getAttributeSyntaxDefinition()。 他们只是扔了OperationNotSupportedException。BasicAttribute子类如果支持它们,则应覆盖这些方法。默认情况下,
BasicAttribute类在测试相等性或搜索值时使用Object.equals()来确定属性值的相等性, 除非值是数组。 对于数组,使用Object.equals()检查数组的每个元素。BasicAttribute子类在通过覆盖使用模式有意义的方法进行类似的相等性检查时可以使用模式信息。 类似地,BasicAttribute类默认返回传递给其构造函数和/或使用add / remove方法操作的值。 子类BasicAttribute可以覆盖get()和getAll()以从目录动态获取值(或直接实现Attribute接口而不是子类化BasicAttribute)。请注意,对
BasicAttribute更新(例如添加或删除值)不会影响目录中属性的相应表示形式。 只能使用DirContext界面中的操作来实现对目录的更新。BasicAttribute实例未与并发多线程访问同步。 尝试访问和修改BasicAttribute多个线程应锁定该对象。- 从以下版本开始:
- 1.3
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 BasicAttribute(String id)构造一个没有值的无序属性的新实例。BasicAttribute(String id, boolean ordered)构造一个没有值的可能有序属性的新实例。BasicAttribute(String id, Object value)使用单个值构造无序属性的新实例。BasicAttribute(String id, Object value, boolean ordered)使用单个值构造可能有序属性的新实例。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 booleanadd(Object attrVal)为此属性添加新值。booleancontains(Object attrVal)确定值是否在此属性中。booleanequals(Object obj)确定obj是否等于此属性。Objectget()检索此属性的值之一。NamingEnumeration<?>getAll()检索此属性值的枚举。DirContextgetAttributeDefinition()检索此属性的架构定义。DirContextgetAttributeSyntaxDefinition()检索与此属性关联的语法定义。inthashCode()计算此属性的哈希码。booleanremove(Object attrval)从此属性中删除指定的值。StringtoString()生成此属性的字符串表示形式。
-
-
-
构造方法详细信息
-
BasicAttribute
public BasicAttribute(String id)
构造一个没有值的无序属性的新实例。- 参数
-
id- 属性的id。 它不能为空。
-
BasicAttribute
public BasicAttribute(String id, Object value)
使用单个值构造无序属性的新实例。- 参数
-
id- 属性的id。 它不能为空。 -
value- 属性的值。 如果为null,则为属性添加空值。
-
BasicAttribute
public BasicAttribute(String id, boolean ordered)
构造一个没有值的可能有序属性的新实例。- 参数
-
id- 属性的id。 它不能为空。 -
ordered- true表示将对该属性的值进行排序; 否则是假的。
-
-
方法详细信息
-
equals
public boolean equals(Object obj)
确定obj是否等于此属性。 如果属性-id,语法和值相等,则两个属性相等。 如果属性值是无序的,则添加值的顺序无关紧要。 如果属性值是有序的,那么值必须匹配的顺序。 如果obj为null或不是Attribute,则返回false。默认情况下,在比较属性id及其值时使用
Object.equals(),除非值是数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以重写此方法以使用模式语法信息和匹配规则,这些规则定义了两个属性相等的含义。 子类如何以及是否使用模式信息由子类确定。 如果子类重写equals(),它还应覆盖hashCode(),以使两个相等的属性具有相同的哈希码。- 重写:
-
equals在类Object - 参数
-
obj- 要检查的可能为null的对象。 - 结果
- 如果obj等于此属性,则为true; 否则是假的。
- 另请参见:
-
hashCode(),contains(java.lang.Object)
-
hashCode
public int hashCode()
计算此属性的哈希码。哈希码是通过添加属性id的哈希码和其所有值的哈希码来计算的,除了作为数组的值。 对于数组,对数组中每个元素的哈希码求和。 如果子类重写
hashCode(),它也应该重写equals(),以便两个相等的属性具有相同的哈希码。- 重写:
-
hashCode在类Object - 结果
- 表示此属性的哈希码的int。
- 另请参见:
-
equals(java.lang.Object)
-
toString
public String toString()
生成此属性的字符串表示形式。 该字符串由属性的id及其值组成。 此字符串用于调试,而不是以编程方式解释。
-
getAll
public NamingEnumeration<?> getAll() throws NamingException
检索此属性值的枚举。默认情况下,返回的值是传递给构造函数和/或使用add / replace / remove方法操作的值。 子类可以重写此方法以从目录动态检索值。
- Specified by:
-
getAll,界面Attribute - 结果
- 属性值的非null枚举。 枚举的每个元素都是一个可能为null的Object。 对象的类是属性值的类。 如果属性的值为null,则该元素为null。 如果属性的值为零,则返回空枚举。
- 异常
-
NamingException- 如果在检索值时遇到命名异常。 - 另请参见:
-
Attribute.isOrdered()
-
get
public Object get() throws NamingException
检索此属性的值之一。默认情况下,返回的值是传递给构造函数和/或使用add / replace / remove方法操作的值之一。 子类可以重写此方法以从目录动态检索值。
- Specified by:
-
get在接口Attribute - 结果
- 可能为null的对象,表示属性的值之一。 如果属性的值为null,则为null。
- 异常
-
NamingException- 如果在检索值时遇到命名异常。
-
contains
public boolean contains(Object attrVal)
确定值是否在此属性中。默认情况下,
Object.equals()比较当使用attrVal与此属性的值时除外attrVal是一个数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以使用模式信息来确定相等性。- Specified by:
-
contains,界面Attribute - 参数
-
attrVal- 要检查的可能为null的值。 如果为null,请检查该属性是否具有值为null的属性值。 - 结果
- 如果attrVal是此属性的值之一,则为true; 否则是假的。
- 另请参见:
-
Object.equals(java.lang.Object),equals(java.lang.Object)
-
add
public boolean add(Object attrVal)
为此属性添加新值。默认情况下,
Object.equals()比较当使用attrVal与此属性的值时除外attrVal是一个数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以使用模式信息来确定相等性。
-
remove
public boolean remove(Object attrval)
从此属性中删除指定的值。默认情况下,
Object.equals()比较当使用attrVal与此属性的值时除外attrVal是一个数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以使用模式信息来确定相等性。
-
getAttributeSyntaxDefinition
public DirContext getAttributeSyntaxDefinition() throws NamingException
检索与此属性关联的语法定义。默认情况下,此方法会抛出OperationNotSupportedException。 如果子类支持模式,则子类应重写此方法。
- Specified by:
-
getAttributeSyntaxDefinition在界面Attribute - 结果
- 属性的语法定义。 如果实现支持模式但是此特定属性没有任何模式信息,则为空。
- 异常
-
OperationNotSupportedException- 如果不支持获取架构。 -
NamingException- 如果在获取架构时发生命名异常。
-
getAttributeDefinition
public DirContext getAttributeDefinition() throws NamingException
检索此属性的架构定义。默认情况下,此方法会抛出OperationNotSupportedException。 如果子类支持模式,则子类应重写此方法。
- Specified by:
-
getAttributeDefinition,界面Attribute - 结果
- 此属性的架构定义。 如果实现支持模式但是此特定属性没有任何模式信息,则为空。
- 异常
-
OperationNotSupportedException- 如果不支持获取架构。 -
NamingException- 如果在获取架构时发生命名异常。
-
-