Module java.desktop

Interface AttributeSet

已知的所有子接口:
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接口,但在接受的类型上更为严格,并将键和值组合成一个Attribute

属性集在打印服务API的几个地方中使用。在每个上下文中,只允许特定种类的属性出现在属性集中,由属性类实现的标记接口决定 -- DocAttributePrintRequestAttributePrintJobAttributePrintServiceAttribute。有四种属性集的特化,限制只包含四种属性中的一种 -- 分别是DocAttributeSetPrintRequestAttributeSetPrintJobAttributeSetPrintServiceAttributeSet。请注意,许多属性类实现了多个标记接口,因此可能出现在多个上下文中。

  • DocAttributeSet,包含DocAttribute,指定了单个文档的特性和要应用于单个文档的打印作业设置。
  • PrintRequestAttributeSet,包含PrintRequestAttribute,指定要应用于整个打印作业以及打印作业中所有文档的设置。
  • PrintJobAttributeSet,包含PrintJobAttribute,报告打印作业的状态。
  • PrintServiceAttributeSet,包含PrintServiceAttribute,报告打印服务实例的状态。
在某些情况下,客户端只允许查看属性集的内容但不允许更改它们(属性集是只读的)。在其他地方,客户端允许查看和更改属性集的内容(属性集是可读写的)。对于只读属性集,调用变异操作会抛出UnmodifiableSetException

打印服务API提供了接口AttributeSet的一个实现,即类HashAttributeSet。客户端可以使用类HashAttributeSet或提供自己的AttributeSet接口实现。打印服务API还提供了接口AttributeSet的子接口的实现 -- 类HashDocAttributeSetHashPrintRequestAttributeSetHashPrintJobAttributeSetHashPrintServiceAttributeSet

  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    add(Attribute attribute)
    如果尚未存在,则将指定的属性添加到此属性集中,首先删除与指定属性值相同属性类别中的任何现有值。
    boolean
    addAll(AttributeSet attributes)
    将指定集合中的所有元素添加到此属性中。
    void
    clear()
    从此属性集中删除所有属性。
    boolean
    containsKey(Class<?> category)
    如果此属性集包含指定类别的属性,则返回true
    boolean
    containsValue(Attribute attribute)
    如果此属性集包含给定的属性值,则返回true
    boolean
    equals(Object object)
    将指定对象与此属性集进行比较以确定是否相等。
    get(Class<?> category)
    返回此属性集中包含的给定属性类别中的属性值。
    int
    返回此属性集的哈希码值。
    boolean
    如果此属性集不包含任何属性,则返回true
    boolean
    remove(Class<?> category)
    如果存在,则从此属性集中删除此类别的任何属性。
    boolean
    remove(Attribute attribute)
    如果存在,则从此属性集中删除指定的属性。
    int
    size()
    返回此属性集中的属性数量。
    返回包含在此集合中的属性数组。
  • Method Details

    • get

      Attribute get(Class<?> category)
      返回此属性集中包含的给定属性类别中的属性值。如果此属性集不包含给定属性类别中的任何属性值,则返回null
      参数:
      category - 要返回其关联属性值的属性类别。它必须是实现接口AttributeClass
      返回:
      此属性集中包含的给定属性类别中的属性值,如果此属性集不包含给定属性类别中的任何属性值,则返回null
      抛出:
      NullPointerException - 如果categorynull
      ClassCastException - 如果category不是实现接口AttributeClass
    • add

      boolean add(Attribute attribute)
      如果尚未存在,则将指定的属性添加到此属性集中,首先删除与指定属性值相同属性类别中的任何现有值。
      参数:
      attribute - 要添加到此属性集中的属性值
      返回:
      如果此属性集因调用而更改,则返回true,即给定的属性值尚不是此属性集的成员
      抛出:
      NullPointerException - 如果attributenull
      UnmodifiableSetException - 如果此属性集不支持add()操作
    • remove

      boolean remove(Class<?> category)
      如果存在,则从此属性集中删除此类别的任何属性。如果categorynull,则remove()不执行任何操作并返回false
      参数:
      category - 要从此属性集中删除的属性类别
      返回:
      如果此属性集因调用而更改,则返回true,即给定的属性值曾是此属性集的成员
      抛出:
      UnmodifiableSetException - 如果此属性集不支持remove()操作
    • remove

      boolean remove(Attribute attribute)
      如果存在,则从此属性集中删除指定的属性。如果attributenull,则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
      参见:
    • 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

      boolean equals(Object object)
      将指定对象与此属性集进行比较以检查是否相等。如果给定对象也是属性集,并且两个属性集包含相同的属性类别-属性值映射,则返回true。这确保了equals()方法在AttributeSet接口的不同实现之间正常工作。
      覆盖:
      equals 在类 Object
      参数:
      object - 用于与此属性集进行比较的对象
      返回:
      true - 如果指定对象等于此属性集
      参见:
    • hashCode

      int hashCode()
      返回此属性集的哈希码值。属性集的哈希码定义为AttributeSet中每个条目的哈希码之和。这确保了对于任何两个属性集t1t2,如果t1.equals(t2),则t1.hashCode()==t2.hashCode(),符合Object.hashCode()的一般契约要求。
      覆盖:
      hashCode 在类 Object
      返回:
      此属性集的哈希码值
      参见: