- 已知的所有实现类:
-
HashAttributeSet,HashDocAttributeSet,HashPrintJobAttributeSet,HashPrintRequestAttributeSet,HashPrintServiceAttributeSet
AttributeSet指定了一组打印属性的接口。打印属性是一个其类实现了接口Attribute的对象。
属性集包含一组属性值,其中集合中不允许重复值。此外,属性集中的每个值都是某个类别的成员,并且在集合中最多只允许一个特定类别中的值。对于属性集,值是Attribute对象,类别是Class对象。属性的类别是该属性种类的类(或接口)层次结构的根。请注意,属性对象的类别可能是属性对象的类的超类,而不是属性对象的类本身。属性对象的类别是通过调用接口Attribute中定义的getCategory()方法来确定的。
AttributeSet的接口类似于Java Collections API的java.util.Map接口,但在接受的类型上更为严格,并将键和值组合成一个Attribute。
属性集在打印服务API的几个地方中使用。在每个上下文中,只允许特定种类的属性出现在属性集中,由属性类实现的标记接口决定 -- DocAttribute,PrintRequestAttribute,PrintJobAttribute和PrintServiceAttribute。有四种属性集的特化,限制只包含四种属性中的一种 -- 分别是DocAttributeSet,PrintRequestAttributeSet,PrintJobAttributeSet和PrintServiceAttributeSet。请注意,许多属性类实现了多个标记接口,因此可能出现在多个上下文中。
DocAttributeSet,包含DocAttribute,指定了单个文档的特性和要应用于单个文档的打印作业设置。PrintRequestAttributeSet,包含PrintRequestAttribute,指定要应用于整个打印作业以及打印作业中所有文档的设置。PrintJobAttributeSet,包含PrintJobAttribute,报告打印作业的状态。PrintServiceAttributeSet,包含PrintServiceAttribute,报告打印服务实例的状态。
UnmodifiableSetException。
打印服务API提供了接口AttributeSet的一个实现,即类HashAttributeSet。客户端可以使用类HashAttributeSet或提供自己的AttributeSet接口实现。打印服务API还提供了接口AttributeSet的子接口的实现 -- 类HashDocAttributeSet,HashPrintRequestAttributeSet,HashPrintJobAttributeSet和HashPrintServiceAttributeSet。
-
Method Summary
Modifier and TypeMethodDescriptionboolean如果尚未存在,则将指定的属性添加到此属性集中,首先删除与指定属性值相同属性类别中的任何现有值。booleanaddAll(AttributeSet attributes) 将指定集合中的所有元素添加到此属性中。voidclear()从此属性集中删除所有属性。booleancontainsKey(Class<?> category) 如果此属性集包含指定类别的属性,则返回true。booleancontainsValue(Attribute attribute) 如果此属性集包含给定的属性值,则返回true。boolean将指定对象与此属性集进行比较以确定是否相等。返回此属性集中包含的给定属性类别中的属性值。inthashCode()返回此属性集的哈希码值。booleanisEmpty()如果此属性集不包含任何属性,则返回true。boolean如果存在,则从此属性集中删除此类别的任何属性。boolean如果存在,则从此属性集中删除指定的属性。intsize()返回此属性集中的属性数量。toArray()返回包含在此集合中的属性数组。
-
Method Details
-
get
返回此属性集中包含的给定属性类别中的属性值。如果此属性集不包含给定属性类别中的任何属性值,则返回null。- 参数:
-
category- 要返回其关联属性值的属性类别。它必须是实现接口Attribute的Class。 - 返回:
-
此属性集中包含的给定属性类别中的属性值,如果此属性集不包含给定属性类别中的任何属性值,则返回
null - 抛出:
-
NullPointerException- 如果category为null -
ClassCastException- 如果category不是实现接口Attribute的Class
-
add
如果尚未存在,则将指定的属性添加到此属性集中,首先删除与指定属性值相同属性类别中的任何现有值。- 参数:
-
attribute- 要添加到此属性集中的属性值 - 返回:
-
如果此属性集因调用而更改,则返回
true,即给定的属性值尚不是此属性集的成员 - 抛出:
-
NullPointerException- 如果attribute为null -
UnmodifiableSetException- 如果此属性集不支持add()操作
-
remove
如果存在,则从此属性集中删除此类别的任何属性。如果category为null,则remove()不执行任何操作并返回false。- 参数:
-
category- 要从此属性集中删除的属性类别 - 返回:
-
如果此属性集因调用而更改,则返回
true,即给定的属性值曾是此属性集的成员 - 抛出:
-
UnmodifiableSetException- 如果此属性集不支持remove()操作
-
remove
如果存在,则从此属性集中删除指定的属性。如果attribute为null,则remove()不执行任何操作并返回false。- 参数:
-
attribute- 要从此属性集中移除的属性值 - 返回:
-
true- 如果调用导致此属性集发生更改,即给定的属性值曾是此属性集的成员 - 抛出:
-
UnmodifiableSetException- 如果此属性集不支持remove()操作
-
containsKey
返回true,如果此属性集包含指定类别的属性。- 参数:
-
category- 要测试其在此属性集中是否存在的类别 - 返回:
-
true- 如果此属性集包含指定类别的属性值
-
containsValue
返回true,如果此属性集包含给定的属性值。- 参数:
-
attribute- 要测试其在此属性集中是否存在的属性值 - 返回:
-
true- 如果此属性集包含给定的属性值
-
addAll
将指定集合中的所有元素添加到此属性集中。结果与将add(Attribute)操作连续应用于此属性集中的每个元素相同。如果在操作进行时修改了指定的集合,则addAll(AttributeSet)操作的行为是未指定的。如果
addAll(AttributeSet)操作引发异常,则对此属性集状态的影响取决于实现;在异常点之前指定集合中的元素可能已添加到此属性集,也可能未添加。- 参数:
-
attributes- 要添加到此属性集中的元素 - 返回:
-
true- 如果调用导致此属性集发生更改 - 抛出:
-
UnmodifiableSetException- 如果此属性集不支持addAll(AttributeSet)方法 -
NullPointerException- 如果指定集合中的某个元素为null - 参见:
-
size
int size()返回此属性集中属性的数量。如果此属性集包含的元素超过Integer.MAX_VALUE,则返回Integer.MAX_VALUE。- 返回:
- 此属性集中属性的数量
-
toArray
Attribute[] toArray()返回包含在此集合中的属性数组。- 返回:
-
作为数组包含在此集合中的
Attributes,如果AttributeSet为空,则长度为零
-
clear
void clear()从此属性集中删除所有属性。- 抛出:
-
UnmodifiableSetException- 如果此属性集不支持clear()操作
-
isEmpty
boolean isEmpty()返回true,如果此属性集不包含任何属性。- 返回:
-
true- 如果此属性集不包含任何属性
-
equals
将指定对象与此属性集进行比较以检查是否相等。如果给定对象也是属性集,并且两个属性集包含相同的属性类别-属性值映射,则返回true。这确保了equals()方法在AttributeSet接口的不同实现之间正常工作。 -
hashCode
int hashCode()返回此属性集的哈希码值。属性集的哈希码定义为AttributeSet中每个条目的哈希码之和。这确保了对于任何两个属性集t1和t2,如果t1.equals(t2),则t1.hashCode()==t2.hashCode(),符合Object.hashCode()的一般契约要求。
-