javax.print.attribute

接口
异常
所有已知子接口:
DocAttributeSet, PrintJobAttributeSet, PrintRequestAttributeSet, PrintServiceAttributeSet
所有已知实现类:
HashAttributeSet, HashDocAttributeSet, HashPrintJobAttributeSet, HashPrintRequestAttributeSet, HashPrintServiceAttributeSet

public interface AttributeSet

接口 AttributeSet 为打印属性集指定接口。打印属性是一个对象,其类实现接口 Attribute

属性集包含一组属性值,在该集合中,不允许出现重复值。此外,属性集中的每个值是某一类别 的成员,在该集合的任何特定类别中最多允许有一个值。对于某个属性集,值都是 Attribute 对象,类别都是 Class 对象。属性的类别是该类属性的类层次结构的根处的类(或接口)。注意,属性对象的类别可以是属性对象的类的超类,而不是属性对象的类本身。通过调用接口 Attribute 中定义的 getCategory() 方法确定属性对象的类别。

AttributeSet 的接口与 Java Collections API 的 java.util.Map 的接口类似,但是对于它将要接受的类型有更强的限制性,并且将键和值组合到了属性中。

在 Print Service API 中,多处使用了属性集。在每个上下文中,只有某些属性(DocAttributePrintRequestAttributePrintJobAttributePrintServiceAttribute)允许出现在属性集中,这由属性类实现的标记接口确定。一个属性集有四种规范,它们限于只能分别包含以下四种属性之一:DocAttributeSetPrintRequestAttributeSetPrintJobAttributeSetPrintServiceAttributeSet。注意,许多属性类会实现多个标记接口,因此可以出现在多个上下文中。

在某些上下文中,仅允许客户机检查属性集的内容,但不允许更改它们(该集合是只读的)。在其他地方,允许客户机检查和更改属性集的内容(该集合是可读写的)。对于只读属性集,调用更改操作会抛出一个 UnmodifiableSetException。

Print Service API 提供接口 AttributeSet 的一个实现,即类 HashAttributeSet。客户机可以使用类 HashAttributeSet,或提供其自已的接口 AttributeSet 的实现。Print Service API 还提供接口 AttributeSet 的子接口的实现,即类 HashDocAttributeSetHashPrintRequestAttributeSetHashPrintJobAttributeSetHashPrintServiceAttributeSet


方法摘要
 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()
          返回此集合中包含的属性的数组。
 

方法详细信息

get

Attribute get(Class<?> category)
返回此属性集在给定的属性类别中包含的属性值。如果此属性集在给定的属性类别中不包含任何属性值,则返回 null

参数:
category - 将返回其关联的属性值的属性类别。它必须是实现接口 AttributeClass
返回:
此属性集中包含的给定属性类别中的属性值,如果此属性集在给定的属性类别中不包含任何属性值,则返回 null
抛出:
NullPointerException - (未经检查的异常)如果 category 为 null,则抛出该异常。
ClassCastException - (未经检查的异常)如果 category 不是实现接口 AttributeClass,则抛出该异常。

add

boolean add(Attribute attribute)
如果指定的属性尚不存在,则将它添加到此属性集中,首先要移除与指定属性值相同的属性类别中的任何现有值。

参数:
attribute - 要添加到此属性集的属性值。
返回:
如果此属性集由于调用而发生改变(即给定的属性值还不是此属性集的成员),则返回 true
抛出:
NullPointerException - (未经检查的异常)如果 attribute 为 null,则抛出该异常。
UnmodifiableSetException - (未经检查的异常)如果此属性集不支持 add() 操作,则抛出该异常。

remove

boolean remove(Class<?> category)
从此属性集移除此类别的任何属性(如果存在)。如果 category 为 null,则 remove() 不执行任何操作,并返回 false

参数:
category - 要从此属性集移除的属性类别。
返回:
如果此属性集由于调用而发生改变(即给定的属性值已经成为此属性集的成员),则返回 true
抛出:
UnmodifiableSetException - (未经检查的异常)如果此属性集不支持 remove() 操作,则抛出该异常。

remove

boolean remove(Attribute attribute)
从此属性集移除指定的属性(如果存在)。如果 attribute 为 null,则 remove() 不执行任何操作,并返回 false

参数:
attribute - 从此属性集移除的属性值。
返回:
如果此属性集由于调用而发生改变(即给定的属性值已经成为此属性集的成员),则返回 true
抛出:
UnmodifiableSetException - (未经检查的异常)如果此属性集不支持 remove() 操作,则抛出该异常。

containsKey

boolean containsKey(Class<?> category)
如果此属性集包含指定类别的一个属性,则返回 true

参数:
category - 将测试其是否存在于此属性集中的类别。
返回:
如果此属性集包含指定类别的一个属性值,则返回 true

containsValue

boolean containsValue(Attribute attribute)
如果此属性集包含给定的属性值,则返回 true

参数:
attribute - 将测试其是否存在于此属性集中的属性值。
返回:
如果此属性集包含给定的属性值,则返回 true

addAll

boolean addAll(AttributeSet attributes)
将指定集合中的所有元素添加到此属性中。该结果与使用指定集合中的每个元素将 = add(Attribute) 操作成功地应用到此属性集中相同。如果正在进行此操作的同时修改了指定的集合,则 addAll(AttributeSet) 操作的行为是不确定的。

如果 addAll(AttributeSet) 操作抛出一个异常,则对此属性集状态的影响取决于实现方法;在异常点之前,不一定将指定集合中的元素添加到了此属性集。

参数:
attributes - 要将其元素添加到此属性集中的属性。
返回:
如果此属性集由于调用而发生改变,则返回 true
抛出:
UnmodifiableSetException - (未经检查的异常)如果此属性集不支持 addAll(AttributeSet) 方法,则抛出该异常。
NullPointerException - (未经检查的异常)如果指定集合中的某一元素为 null,则抛出该异常。
另请参见:
add(Attribute)

size

int size()
返回此属性集中属性的数量。如果此属性集包含的元素多于 Integer.MAX_VALUE ,则返回 Integer.MAX_VALUE

返回:
此属性集中属性的数量。

toArray

Attribute[] toArray()
返回此集合中包含的属性的数组。

返回:
作为数组包含在此集合中的属性,如果 AttributeSet 为空,则返回零长度。

clear

void clear()
从此属性集中移除所有属性。

抛出:
UnmodifiableSetException - (未经检查的异常)如果此属性集不支持 clear() 操作,则抛出该异常。

isEmpty

boolean isEmpty()
如果此属性集不包含任何属性,则返回 true。

返回:
如果此属性集不包含任何属性,则返回 true。

equals

boolean equals(Object object)
比较指定的对象与此属性集的相等性。如果给定的对象也是一个属性集,并且两个属性集包含相同的属性类别到属性值的映射关系,则返回 true。这确保了 equals() 方法能跨越 AttributeSet 接口的不同实现正常运行。

覆盖:
Object 中的 equals
参数:
object - 要与此属性集进行相等性比较的对象。
返回:
如果指定对象等于此属性集,则返回 true
另请参见:
Object.hashCode(), Hashtable

hashCode

int hashCode()
返回此属性集的哈希码值。属性集的哈希码被定义为 AttributeSet 中每个条目的哈希码的总和。这确保了 t1.equals(t2) 意味对于任何两个属性集 t1t2 而言,都存在 t1.hashCode()==t2.hashCode(),这是 Object.hashCode() 的通用协定所要求的。

覆盖:
Object 中的 hashCode
返回:
此属性集的哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable