JavaTM 2 Platform
Standard Ed. 5.0

javax.naming.directory
类 BasicAttributes

java.lang.Object
  继承者 javax.naming.directory.BasicAttributes
所有已实现的接口:
Serializable, Cloneable, Attributes

public class BasicAttributes
extends Object
implements Attributes

此类提供 Attributes 接口的基本实现。

BasicAttributes 或者区分大小写或者不区分大小写(忽略大小写)。此属性在调用 BasicAttributes 构造方法时确定。在不区分大小写的 BasicAttributes 中,搜索属性或添加属性时将忽略其属性标识符的大小写。在区分大小写的 BasicAttributes 中,大小写有意义。

BasicAttributes 类需要创建 Attribute 时使用 BasicAttribute。对 BasicAttribute 没有其他依赖性。

注意,更新 BasicAttributes(如添加或移除属性)对目录中的相应表示形式没有影响。只有使用 DirContext 接口中的操作才能实现对目录的更新。

BasicAttributes 实例与并发多线程访问不同步。试图访问和修改单个 BasicAttributes 实例的多个线程应该锁定对象。

从以下版本开始:
1.3
另请参见:
DirContext.getAttributes(javax.naming.Name), DirContext.modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes), DirContext.bind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes), DirContext.rebind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes), DirContext.createSubcontext(javax.naming.Name, javax.naming.directory.Attributes), DirContext.search(javax.naming.Name, javax.naming.directory.Attributes, java.lang.String[]), 序列化表格

构造方法摘要
BasicAttributes()
          构造一个新的 Attributes 实例。
BasicAttributes(boolean ignoreCase)
          构造一个新的 Attributes 实例。
BasicAttributes(String attrID, Object val)
          构造带有一个属性的新 Attributes 实例。
BasicAttributes(String attrID, Object val, boolean ignoreCase)
          构造带有一个属性的新 Attributes 实例。
 
方法摘要
 Object clone()
          创建并返回此对象的一个副本。
 boolean equals(Object obj)
          确定此 BasicAttributes 是否等于另一个 Attributes
 Attribute get(String attrID)
          利用属性集中的给定属性 id 检索属性。
 NamingEnumeration<Attribute> getAll()
          检索属性集中属性的枚举。
 NamingEnumeration<String> getIDs()
          检索属性集中属性的 id 的枚举。
 int hashCode()
          计算此 BasicAttributes 的哈希码。
 boolean isCaseIgnored()
          确定在检索或添加属性时属性集是否忽略属性标识符的大小写。
 Attribute put(Attribute attr)
          向属性集中添加新属性。
 Attribute put(String attrID, Object val)
          向属性集中添加新属性。
 Attribute remove(String attrID)
          从属性集中移除属性 id 为 'attrID' 的属性。
 int size()
          在属性集中检索属性数。
 String toString()
          生成此属性集的字符串表示形式。
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

BasicAttributes

public BasicAttributes()
构造一个新的 Attributes 实例。在后续检索或添加属性时属性标识符的字符大小写有意义。


BasicAttributes

public BasicAttributes(boolean ignoreCase)
构造一个新的 Attributes 实例。如果 ignoreCase 为 true,则忽略属性标识符的字符大小写;否则大小写有意义。

参数:
ignoreCase - 为 true 表示在检索或添加属性时此属性集将忽略其属性标识符的大小写;为 false 表示要考虑大小写。

BasicAttributes

public BasicAttributes(String attrID,
                       Object val)
构造带有一个属性的新 Attributes 实例。将 attrID 和 val 指定的属性添加到新创建的属性中。在后续检索或添加属性时属性标识符的字符大小写有意义。

参数:
attrID - 要添加的非 null 属性 id。
val - 要添加的属性的值。如果为 null,则将 null 值添加到属性中。

BasicAttributes

public BasicAttributes(String attrID,
                       Object val,
                       boolean ignoreCase)
构造带有一个属性的新 Attributes 实例。将 attrID 和 val 指定的属性添加到新创建的属性中。如果 ignoreCase 为 true,则忽略属性标识符的字符大小写;否则大小写有意义。

参数:
attrID - 要添加的属性的非 null id。如果此属性集忽略其属性 id 的字符大小写,则忽略 attrID 的大小写。
val - 要添加的属性的值。如果为 null,则将 null 值添加到属性中。
ignoreCase - 为 true 表示在检索或添加属性时此属性集将忽略其属性标识符的大小写;为 false 表示要考虑大小写。
方法详细信息

clone

public Object clone()
从类 Object 复制的描述
创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。一般来说,对于任何对象 x,如果表达式:
x.clone() != x
是正确的,则表达式:
x.clone().getClass() == x.getClass()
将为 true,但这些不是绝对条件。一般情况下是:
x.clone().equals(x)
将为 true,但这不是绝对条件。

按照惯例,返回的对象应该通过调用 super.clone 获得。如果一个类及其所有的超类(Object 除外)都遵守此约定,则 x.clone().getClass() == x.getClass()

按照惯例,此方法返回的对象应该独立于该对象(正被克隆的对象)。要获得此独立性,在 super.clone 返回对象之前,有必要对该对象的一个或多个字段进行修改。这通常意味着要复制包含正在被克隆对象的内部“深层结构”的所有可变对象,并使用对副本的引用替换对这些对象的引用。如果一个类只包含基本字段或对不变对象的引用,那么通常不需要修改 super.clone 返回的对象中的字段。

Object 类的 clone 方法执行特定的克隆操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。注意:所有的数组都被视为实现接口 Cloneable。否则,此方法会创建此对象的类的一个新实例,并像通过分配那样,严格使用此对象相应字段的内容初始化该对象的所有字段;这些字段的内容没有被自我克隆。所以,此方法执行的是该对象的“浅表复制”,而不“深层复制”操作。

Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。

指定者:
接口 Attributes 中的 clone
覆盖:
Object 中的 clone
返回:
此实例的一个克隆。
另请参见:
Cloneable

isCaseIgnored

public boolean isCaseIgnored()
从接口 Attributes 复制的描述
确定在检索或添加属性时属性集是否忽略属性标识符的大小写。

指定者:
接口 Attributes 中的 isCaseIgnored
返回:
如果忽略大小写,则返回 true;否则,返回 false。

size

public int size()
从接口 Attributes 复制的描述
在属性集中检索属性数。

指定者:
接口 Attributes 中的 size
返回:
此属性集中的非负属性数。

get

public Attribute get(String attrID)
从接口 Attributes 复制的描述
利用属性集中的给定属性 id 检索属性。

指定者:
接口 Attributes 中的 get
参数:
attrID - 要检索的属性的非 null id。如果此属性集忽略其属性 id 的字符大小写,则忽略 attrID 的大小写。
返回:
由 attrID 标识的属性;如果找不到,则返回 null。
另请参见:
Attributes.put(java.lang.String, java.lang.Object), Attributes.remove(java.lang.String)

getAll

public NamingEnumeration<Attribute> getAll()
从接口 Attributes 复制的描述
检索属性集中属性的枚举。在此枚举上更新此属性集的结果是不确定的。

指定者:
接口 Attributes 中的 getAll
返回:
此属性集中属性的非 null 枚举。每个枚举元素都属于 Attribute 类。如果属性集的属性数为零,则返回空枚举。

getIDs

public NamingEnumeration<String> getIDs()
从接口 Attributes 复制的描述
检索属性集中属性的 id 的枚举。在此枚举上更新此属性集的结果是不确定的。

指定者:
接口 Attributes 中的 getIDs
返回:
此属性集中属性 id 的非 null 枚举。每个枚举元素都属于 String 类。如果属性集的属性数为零,则返回空枚举。

put

public Attribute put(String attrID,
                     Object val)
从接口 Attributes 复制的描述
向属性集中添加新属性。

指定者:
接口 Attributes 中的 put
参数:
attrID - 要添加的属性的非 null id。如果属性集忽略其属性 id 的字符大小写,则忽略 attrID 的大小写。
val - 要添加的属性的可能为 null 的值。如果为 null,则属性不具有任何值。
返回:
以前在此属性集中的具有 attrID 的 Attribute;如果不存在这种属性,则返回 null。
另请参见:
Attributes.remove(java.lang.String)

put

public Attribute put(Attribute attr)
从接口 Attributes 复制的描述
向属性集中添加新属性。

指定者:
接口 Attributes 中的 put
参数:
attr - 要添加的非 null 属性。如果属性集忽略其属性 id 的字符大小写,则忽略 attr 标识符的大小写。
返回:
以前在此属性集中的与 attr 具有相同 ID 的 Attribute;如果不存在这种属性,则返回 null。
另请参见:
Attributes.remove(java.lang.String)

remove

public Attribute remove(String attrID)
从接口 Attributes 复制的描述
从属性集中移除属性 id 为 'attrID' 的属性。如果该属性不存在,则忽略。

指定者:
接口 Attributes 中的 remove
参数:
attrID - 要移除的属性的非 null id。如果属性集忽略其属性 id 的字符大小写,则忽略 attrID 的大小写。
返回:
以前在属性集中的与 attrID 具有相同 ID 的 Attribute;如果不存在这种属性,则返回 null。

toString

public String toString()
生成此属性集的字符串表示形式。字符串由每个属性标识符和每个属性的内容组成。此字符串的内容用于调试目的,不以编程方式对其进行解释。

覆盖:
Object 中的 toString
返回:
列出此属性集的内容的非 null 字符串。

equals

public boolean equals(Object obj)
确定此 BasicAttributes 是否等于另一个 Attributes。如果两个 Attributes 均为 Attributes 的实例、对待属性 ID 的大小写的方式相同并且包含相同的属性,则它们是相等的。此 BasicAttributes 中的每个 Attribute 的相等性都是使用 Object.equals() 检查的(Attribute 的实现可能已经重写了该方法)。如果子类重写 equals(),则其也应该重写 hashCode(),这样两个相等的 Attributes 实例才能具有相同的哈希码。

覆盖:
Object 中的 equals
参数:
obj - 要与之比较的可能为 null 的对象。
返回:
如果 obj 等于此 BasicAttributes,则返回 true。
另请参见:
hashCode()

hashCode

public int hashCode()
计算此 BasicAttributes 的哈希码。

该哈希码通过加总此对象的属性的哈希码来计算。如果此 BasicAttributes 忽略其属性 ID 的大小写,则将哈希码加一。如果子类重写 hashCode(),则其也应该重写 equals(),这样两个相等的 Attributes 实例才能具有相同的哈希码。

覆盖:
Object 中的 hashCode
返回:
表示此 BasicAttributes 实例的哈希码的 int。
另请参见:
equals(java.lang.Object)

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策