- 所有已知的子接口:
DocAttributeSet,PrintJobAttributeSet,PrintRequestAttributeSet,PrintServiceAttributeSet
- 所有已知的实现类:
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 。请注意,许多属性类实现了不止一种标记接口,因此可能出现在不止一种上下文中。
- 包含
DocAttribute的DocAttributeSet指定单个文档的特征以及要应用于单个文档的打印作业设置。 - 包含
PrintRequestAttribute的PrintRequestAttributeSet指定要应用于整个打印作业和打印作业中所有文档的设置。 - 包含
PrintJobAttribute的PrintJobAttributeSet报告打印作业的状态。 - 包含
PrintServiceAttribute的PrintServiceAttributeSet报告打印服务实例的状态。
UnmodifiableSetException 。
打印服务 API 提供接口 AttributeSet、类 HashAttributeSet 的一种实现。客户端可以使用类 HashAttributeSet 或提供自己的接口 AttributeSet 实现。打印服务 API 还提供接口 AttributeSet 的子接口的实现——类 HashDocAttributeSet 、HashPrintRequestAttributeSet 、HashPrintJobAttributeSet 和 HashPrintServiceAttributeSet 。
-
方法总结
修饰符和类型方法描述boolean如果指定的属性不存在,则将指定的属性添加到此属性集中,首先删除与指定的属性值相同的属性类别中的任何现有值。booleanaddAll(AttributeSet attributes) 将指定集中的所有元素添加到此属性。voidclear()从此属性集中删除所有属性。booleancontainsKey(Class<?> category) 如果此属性集包含指定类别的属性,则返回true。booleancontainsValue(Attribute attribute) 如果此属性集包含给定的属性值,则返回true。boolean比较指定对象与此属性集的相等性。返回此属性集包含在给定属性类别中的属性值。inthashCode()返回此属性集的散列码值。booleanisEmpty()如果此属性集不包含任何属性,则返回true。boolean从此属性集中移除此类别的任何属性(如果存在)。boolean从此属性集中移除指定的属性(如果存在)。intsize()返回此属性集中的属性数。toArray()返回此集合中包含的属性数组。
-
方法详情
-
get
返回此属性集包含在给定属性类别中的属性值。如果此属性集不包含给定属性类别中的任何属性值,则返回null。- 参数:
category- 要返回其关联属性值的属性类别。它必须是实现接口Attribute的Class。- 返回:
-
此属性集中包含的给定属性类别中的属性值,或者
null如果此属性集不包含给定属性类别中的任何属性值 - 抛出:
NullPointerException- 如果category是nullClassCastException- 如果category不是实现接口Attribute的Class
-
add
如果指定的属性不存在,则将指定的属性添加到此属性集中,首先删除与指定的属性值相同的属性类别中的任何现有值。- 参数:
attribute- 要添加到此属性集中的属性值- 返回:
true如果此属性集因调用而更改,即给定的属性值还不是此属性集的成员- 抛出:
NullPointerException- 如果attribute是nullUnmodifiableSetException- 如果此属性集不支持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.equals(t2)暗示t1.hashCode()==t2.hashCode()对于任何两个属性集t1和t2,正如Object.hashCode()的总合同所要求的那样。
-