public interface AttributeSet
接口 AttributeSet 为打印属性集指定接口。打印属性是一个对象,其类实现接口 Attribute
。
属性集包含一组属性值,在该集合中,不允许出现重复值。此外,属性集中的每个值是某一类别 的成员,在该集合的任何特定类别中最多允许有一个值。对于某个属性集,值都是 Attribute
对象,类别都是 Class
对象。属性的类别是该类属性的类层次结构的根处的类(或接口)。注意,属性对象的类别可以是属性对象的类的超类,而不是属性对象的类本身。通过调用接口 Attribute
中定义的
方法确定属性对象的类别。 getCategory()
AttributeSet 的接口与 Java Collections API 的 java.util.Map 的接口类似,但是对于它将要接受的类型有更强的限制性,并且将键和值组合到了属性中。
在 Print Service API 中,多处使用了属性集。在每个上下文中,只有某些属性(DocAttribute
、PrintRequestAttribute
、PrintJobAttribute
和 PrintServiceAttribute
)允许出现在属性集中,这由属性类实现的标记接口确定。一个属性集有四种规范,它们限于只能分别包含以下四种属性之一:DocAttributeSet
、PrintRequestAttributeSet
、PrintJobAttributeSet
和 PrintServiceAttributeSet
。注意,许多属性类会实现多个标记接口,因此可以出现在多个上下文中。
DocAttribute
的 DocAttributeSet
指定单个文档的特征和应用到单个文档的打印作业的设置。
PrintRequestAttribute
的 PrintRequestAttributeSet
指定应用到整个打印作业和打印作业中的所有文档的设置。
PrintJobAttribute
的 PrintJobAttributeSet
报告打印作业的状态。
PrintServiceAttribute
的 PrintServiceAttributeSet
报告 Print Service 实例的状态。 在某些上下文中,仅允许客户机检查属性集的内容,但不允许更改它们(该集合是只读的)。在其他地方,允许客户机检查和更改属性集的内容(该集合是可读写的)。对于只读属性集,调用更改操作会抛出一个 UnmodifiableSetException。
Print Service API 提供接口 AttributeSet 的一个实现,即类 HashAttributeSet
。客户机可以使用类 HashAttributeSet
,或提供其自已的接口 AttributeSet 的实现。Print Service API 还提供接口 AttributeSet 的子接口的实现,即类 HashDocAttributeSet
、HashPrintRequestAttributeSet
、HashPrintJobAttributeSet
和 HashPrintServiceAttributeSet
。
方法摘要 | |
---|---|
boolean |
add(Attribute attribute) 如果指定的属性尚不存在,则将它添加到此属性集中,首先要移除与指定属性值相同的属性类别中的任何现有值。 |
boolean |
addAll(AttributeSet attributes) 将指定集合中的所有元素添加到此属性中。 |
void |
clear() 从此属性集中移除所有属性。 |
boolean |
containsKey(Class<?> category) 如果此属性集包含指定类别的一个属性,则返回 true。 |
boolean |
containsValue(Attribute attribute) 如果此属性集包含给定的属性值,则返回 true。 |
boolean |
equals(Object object) 比较指定的对象与此属性集的相等性。 |
Attribute |
get(Class<?> category) 返回此属性集在给定的属性类别中包含的属性值。 |
int |
hashCode() 返回此属性集的哈希码值。 |
boolean |
isEmpty() 如果此属性集不包含任何属性,则返回 true。 |
boolean |
remove(Attribute attribute) 从此属性集移除指定的属性(如果存在)。 |
boolean |
remove(Class<?> category) 从此属性集移除此类别的任何属性(如果存在)。 |
int |
size() 返回此属性集中属性的数量。 |
Attribute[] |
toArray() 返回此集合中包含的属性的数组。 |
方法详细信息 |
---|
Attribute get(Class<?> category)
category
- 将返回其关联的属性值的属性类别。它必须是实现接口
Attribute
的
Class
。
NullPointerException
- (未经检查的异常)如果
category
为 null,则抛出该异常。
ClassCastException
- (未经检查的异常)如果
category
不是实现接口
Attribute
的
Class
,则抛出该异常。
boolean add(Attribute attribute)
attribute
- 要添加到此属性集的属性值。
NullPointerException
- (未经检查的异常)如果
attribute
为 null,则抛出该异常。
UnmodifiableSetException
- (未经检查的异常)如果此属性集不支持
add()
操作,则抛出该异常。
boolean remove(Class<?> category)
category
为 null,则
remove()
不执行任何操作,并返回
false。
category
- 要从此属性集移除的属性类别。
UnmodifiableSetException
- (未经检查的异常)如果此属性集不支持
remove()
操作,则抛出该异常。
boolean remove(Attribute attribute)
attribute
为 null,则
remove()
不执行任何操作,并返回
false。
attribute
- 从此属性集移除的属性值。
UnmodifiableSetException
- (未经检查的异常)如果此属性集不支持
remove()
操作,则抛出该异常。
boolean containsKey(Class<?> category)
category
- 将测试其是否存在于此属性集中的类别。
boolean containsValue(Attribute attribute)
attribute
- 将测试其是否存在于此属性集中的属性值。
boolean addAll(AttributeSet attributes)
add(Attribute)
操作成功地应用到此属性集中相同。如果正在进行此操作的同时修改了指定的集合,则
addAll(AttributeSet)
操作的行为是不确定的。
如果 addAll(AttributeSet)
操作抛出一个异常,则对此属性集状态的影响取决于实现方法;在异常点之前,不一定将指定集合中的元素添加到了此属性集。
attributes
- 要将其元素添加到此属性集中的属性。
UnmodifiableSetException
- (未经检查的异常)如果此属性集不支持
addAll(AttributeSet) 方法,则抛出该异常。
NullPointerException
- (未经检查的异常)如果指定集合中的某一元素为 null,则抛出该异常。
add(Attribute)
int size()
Attribute[] toArray()
void clear()
UnmodifiableSetException
- (未经检查的异常)如果此属性集不支持
clear()
操作,则抛出该异常。
boolean isEmpty()
boolean equals(Object object)
object
- 要与此属性集进行相等性比较的对象。
Object.hashCode()
,
Hashtable
int hashCode()
Object.hashCode()
的通用协定所要求的。
Object.equals(java.lang.Object)
,
Hashtable