- java.lang.Object
-
- javax.naming.directory.BasicAttributes
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Attributes
public class BasicAttributes extends Object implements Attributes
该类提供了Attributes界面的基本实现。BasicAttributes是区分大小写或不区分大小写(case-ignore)。 此属性在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[])
, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 BasicAttributes()
构造一个新的属性实例。BasicAttributes(boolean ignoreCase)
构造一个新的属性实例。BasicAttributes(String attrID, Object val)
使用一个属性构造一个新的属性实例。BasicAttributes(String attrID, Object val, boolean ignoreCase)
使用一个属性构造一个新的属性实例。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Object
clone()
创建并返回此对象的副本。boolean
equals(Object obj)
确定这BasicAttributes
是否等于另一个Attributes
两个Attributes
相等,如果它们都是Attributes
实例,Attributes
相同的方式处理属性ID的情况,并包含相同的属性。Attribute
get(String attrID)
使用属性集中的给定属性id检索属性。NamingEnumeration<Attribute>
getAll()
检索属性集中属性的枚举。NamingEnumeration<String>
getIDs()
检索属性集中属性ID的枚举。int
hashCode()
计算此BasicAttributes的哈希码。boolean
isCaseIgnored()
确定属性集是否在检索或添加属性时忽略属性标识符的情况。Attribute
put(String attrID, Object val)
向属性集添加一个新属性。Attribute
put(Attribute attr)
向属性集添加一个新属性。Attribute
remove(String attrID)
从属性集中删除属性id“attrID”的属性。int
size()
检索属性集中的属性数。String
toString()
生成此属性集的字符串表示形式。
-
-
-
构造方法详细信息
-
BasicAttributes
public BasicAttributes()
构造一个新的属性实例。 随后检索或添加属性时,属性标识符的字符大小很重要。
-
BasicAttributes
public BasicAttributes(boolean ignoreCase)
构造一个新的属性实例。 如果ignoreCase
为真,属性标识符的字符大小写将被忽略; 否则情况重大。- 参数
-
ignoreCase
- true表示此属性集将在检索或添加属性时忽略其属性标识符的情况; 假意味着受到尊重。
-
BasicAttributes
public BasicAttributes(String attrID, Object val)
使用一个属性构造一个新的属性实例。 由attrID和val指定的属性将添加到新创建的属性中。 随后检索或添加属性时,属性标识符的字符大小很重要。- 参数
-
attrID
- non-null要添加的属性的id。 -
val
- 要添加的属性的值。 如果为null,则将null值添加到该属性。
-
BasicAttributes
public BasicAttributes(String attrID, Object val, boolean ignoreCase)
使用一个属性构造一个新的属性实例。 由attrID和val指定的属性将添加到新创建的属性中。 如果ignoreCase
为真,属性标识符的字符大小写将被忽略; 否则情况重大。- 参数
-
attrID
- non-null要添加的属性的id。 如果此属性集忽略其属性ID的字符大小写,则忽略attrID的情况。 -
val
- 要添加的属性的值。 如果为null,则将null值添加到该属性。 -
ignoreCase
- true表示此属性集在检索或添加属性时将忽略其属性标识符的情况; 假意味着受到尊重。
-
-
方法详细信息
-
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
返回的对象中的字段通常不需要修改。该方法
clone
类Object
执行特定克隆操作。 首先,如果此对象的类不实现接口Cloneable
,则抛出一个CloneNotSupportedException
。 请注意,所有阵列被认为是实现该接口Cloneable
并且所述的返回类型clone
数组类型的方法T[]
是T[]
其中T是任何引用或原始类型。 否则,该方法将创建该对象的类的新实例,并将其所有字段初始化为该对象的相应字段的内容,就像通过赋值一样。 这些字段的内容本身不被克隆。 因此,该方法执行该对象的“浅拷贝”,而不是“深度拷贝”操作。类
Object
本身并不实现接口Cloneable
,因此在类为Object
的对象上调用clone
方法将导致在运行时抛出异常。- Specified by:
-
clone
在接口Attributes
- 重写:
-
clone
在Object
- 结果
- 这个实例的一个克隆。
- 另请参见:
-
Cloneable
-
isCaseIgnored
public boolean isCaseIgnored()
说明从界面Attributes
复制确定属性集是否在检索或添加属性时忽略属性标识符的情况。- Specified by:
-
isCaseIgnored
在接口Attributes
- 结果
- 如果忽略,则为true; 否则为假。
-
size
public int size()
描述从接口Attributes
复制检索属性集中的属性数。- Specified by:
-
size
在接口Attributes
- 结果
- 此属性集中的非负数属性集。
-
get
public Attribute get(String attrID)
描述从接口Attributes
复制使用属性集中的给定属性id检索属性。- Specified by:
-
get
在接口Attributes
- 参数
-
attrID
- 要检索的属性的非空ID。 如果此属性集忽略其属性ID的字符大小写,则忽略attrID的情况。 - 结果
- 由attrID标识的属性; 如果找不到null。
- 另请参见:
-
Attributes.put(java.lang.String, java.lang.Object)
,Attributes.remove(java.lang.String)
-
getAll
public NamingEnumeration<Attribute> getAll()
描述从接口Attributes
复制检索属性集中属性的枚举。 在此枚举上设置的此属性的更新效果未定义。- Specified by:
-
getAll
在接口Attributes
- 结果
-
此属性集中属性的非空枚举。
枚举的每个元素都是类别
Attribute
。 如果属性集具有零属性,则返回一个空的枚举。
-
getIDs
public NamingEnumeration<String> getIDs()
说明从界面Attributes
复制检索属性集中属性ID的枚举。 在此枚举上设置的此属性的更新效果未定义。- Specified by:
-
getIDs
在接口Attributes
- 结果
- 属性集中的属性ID的非空枚举。 枚举的每个元素都是String类。 如果属性集具有零属性,则返回一个空的枚举。
-
put
public Attribute put(String attrID, Object val)
描述从接口Attributes
复制向属性集添加一个新属性。- Specified by:
-
put
在接口Attributes
- 参数
-
attrID
- non-null要添加的属性的id。 如果属性集忽略其属性id的字符大小写,则忽略attrID的情况。 -
val
- 要添加的属性的可能的空值。 如果为null,则该属性不具有任何值。 - 结果
- 此属性集中以前的attrID属性; 如果不存在这样的属性,则为null。
- 另请参见:
-
Attributes.remove(java.lang.String)
-
put
public Attribute put(Attribute attr)
描述从接口Attributes
复制向属性集添加一个新属性。- Specified by:
-
put
在接口Attributes
- 参数
-
attr
- 要添加的非空属性。 如果属性集忽略其属性ID的字符大小写,则忽略attr标识符的情况。 - 结果
- 与该属性集中以前的attr具有相同ID的属性; 如果不存在这样的属性,则为null。
- 另请参见:
-
Attributes.remove(java.lang.String)
-
remove
public Attribute remove(String attrID)
说明从接口Attributes
复制从属性集中删除属性id“attrID”的属性。 如果属性不存在,请忽略。- Specified by:
-
remove
在接口Attributes
- 参数
-
attrID
- 要删除的属性的非空ID。 如果属性集忽略其属性id的字符大小写,则忽略attrID的情况。 - 结果
- 与属性集中以前的attrID具有相同ID的属性; 如果不存在这样的属性,则为null。
-
toString
public String toString()
生成此属性集的字符串表示形式。 该字符串由每个属性标识符和每个属性的内容组成。 该字符串的内容对于调试很有用,不能以编程方式解释。
-
equals
public boolean equals(Object obj)
确定这BasicAttributes
是否等于另一个Attributes
两个Attributes
相同,如果它们都是Attributes
实例,Attributes
相同的方式处理属性ID的情况,并包含相同的属性。 每个Attribute
在此BasicAttributes
检查用于使用平等Object.equals()
,这可能通过实现覆盖Attribute
)。 如果一个子类覆盖了equals()
,那么它也应该覆盖hashCode()
,以使两个相等的Attributes
实例具有相同的哈希码。- 重写:
-
equals
在Object
- 参数
-
obj
- 可能要比较的空对象。 - 结果
- true如果obj等于此BasicAttributes。
- 另请参见:
-
hashCode()
-
hashCode
public int hashCode()
计算此BasicAttributes的哈希码。通过添加该对象的属性的哈希码来计算哈希码。 如果此BasicAttributes忽略其属性ID的情况,则将一个添加到哈希码。 如果一个子类覆盖了
hashCode()
,那么它也应该覆盖equals()
,以至于相等的两个Attributes
实例具有相同的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 一个表示此BasicAttributes实例的哈希码的int。
- 另请参见:
-
equals(java.lang.Object)
-
-