- 已知的所有实现类:
-
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
如果尚未存在,则将指定的属性添加到此属性集中,首先删除与指定属性值相同属性类别中的任何现有值。boolean
addAll
(AttributeSet attributes) 将指定集合中的所有元素添加到此属性中。void
clear()
从此属性集中删除所有属性。boolean
containsKey
(Class<?> category) 如果此属性集包含指定类别的属性,则返回true
。boolean
containsValue
(Attribute attribute) 如果此属性集包含给定的属性值,则返回true
。boolean
将指定对象与此属性集进行比较以确定是否相等。返回此属性集中包含的给定属性类别中的属性值。int
hashCode()
返回此属性集的哈希码值。boolean
isEmpty()
如果此属性集不包含任何属性,则返回true
。boolean
如果存在,则从此属性集中删除此类别的任何属性。boolean
如果存在,则从此属性集中删除指定的属性。int
size()
返回此属性集中的属性数量。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()
的一般契约要求。
-