Module java.desktop

Class AttributeSetUtilities

java.lang.Object
javax.print.attribute.AttributeSetUtilities

public final class AttributeSetUtilities extends Object
AttributeSetUtilities提供了用于操作AttributeSets的静态方法。
  • 用于创建属性集的不可修改和同步视图的方法。
  • 用于构建接口AttributeSet实现的有用操作
不可修改视图 UAttributeSet S的客户端提供“只读”访问的方式。对U的查询操作“读取”到S;因此,对S的更改会反映在U中。但是,任何尝试修改U的操作都会导致UnmodifiableSetException。如果属性集对象S是可序列化的,则不可修改视图对象U也将是可序列化的。

属性集的同步视图 V 是属性集S的客户端提供同步(多线程安全)访问的方式。每个V的操作都是使用V本身作为锁对象进行同步,然后仅调用S的相应操作。为了保证互斥访问,所有对S的访问都必须通过V完成。如果属性集对象S是可序列化的,则同步视图对象V也将是可序列化的。

如在javax.print包描述中提到的,将null引用参数传递给方法是不正确的,除非在方法上明确记录了具有有意义解释的情况。反之使用是不正确的编码,可能会导致立即或以后的某个时间发生运行时异常。 IllegalArgumentExceptionNullPointerException是这类情况的典型和可接受的运行时异常示例。

  • Method Details

    • unmodifiableView

      public static AttributeSet unmodifiableView(AttributeSet attributeSet)
      创建给定属性集的不可修改视图。
      参数:
      attributeSet - 基础属性集
      返回:
      attributeSet的不可修改视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • unmodifiableView

      public static DocAttributeSet unmodifiableView(DocAttributeSet attributeSet)
      创建给定文档属性集的不可修改视图。
      参数:
      attributeSet - 基础文档属性集
      返回:
      attributeSet的不可修改视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • unmodifiableView

      public static PrintRequestAttributeSet unmodifiableView(PrintRequestAttributeSet attributeSet)
      创建给定打印请求属性集的不可修改视图。
      参数:
      attributeSet - 基础打印请求属性集
      返回:
      attributeSet的不可修改视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • unmodifiableView

      public static PrintJobAttributeSet unmodifiableView(PrintJobAttributeSet attributeSet)
      创建给定打印作业属性集的不可修改视图。
      参数:
      attributeSet - 基础打印作业属性集
      返回:
      attributeSet的不可修改视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • unmodifiableView

      public static PrintServiceAttributeSet unmodifiableView(PrintServiceAttributeSet attributeSet)
      创建给定打印服务属性集的不可修改视图。
      参数:
      attributeSet - 基础打印服务属性集
      返回:
      attributeSet的不可修改视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • synchronizedView

      public static AttributeSet synchronizedView(AttributeSet attributeSet)
      创建给定属性集的同步视图。
      参数:
      attributeSet - 基础属性集
      返回:
      attributeSet的同步视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • synchronizedView

      public static DocAttributeSet synchronizedView(DocAttributeSet attributeSet)
      创建给定文档属性集的同步视图。
      参数:
      attributeSet - 基础文档属性集
      返回:
      attributeSet的同步视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • synchronizedView

      public static PrintRequestAttributeSet synchronizedView(PrintRequestAttributeSet attributeSet)
      创建给定打印请求属性集的同步视图。
      参数:
      attributeSet - 基础打印请求属性集
      返回:
      attributeSet的同步视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • synchronizedView

      public static PrintJobAttributeSet synchronizedView(PrintJobAttributeSet attributeSet)
      创建给定打印作业属性集的同步视图。
      参数:
      attributeSet - 基础打印作业属性集
      返回:
      attributeSet的同步视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • synchronizedView

      public static PrintServiceAttributeSet synchronizedView(PrintServiceAttributeSet attributeSet)
      创建给定打印服务属性集的同步视图。
      参数:
      attributeSet - 基础打印服务属性集
      返回:
      attributeSet的同步视图
      抛出:
      NullPointerException - 如果attributeSetnull
    • verifyAttributeCategory

      public static Class<?> verifyAttributeCategory(Object object, Class<?> interfaceName)
      验证给定对象是实现给定接口的Class,假定为接口Attribute或其子接口。
      参数:
      object - 要测试的Object
      interfaceName - 对象必须实现的接口
      返回:
      如果object是实现interfaceNameClass,则将object向下转型为类型Class;否则将抛出异常
      抛出:
      NullPointerException - 如果objectnull
      ClassCastException - 如果object不是实现interfaceNameClass
    • verifyAttributeValue

      public static Attribute verifyAttributeValue(Object object, Class<?> interfaceName)
      验证给定对象是给定接口的实例,假定为接口Attribute或其子接口。
      参数:
      object - 要测试的Object
      interfaceName - 对象必须是其实例的接口
      返回:
      如果objectinterfaceName的实例,则将object向下转型为类型Attribute;否则将抛出异常
      抛出:
      NullPointerException - 如果objectnull
      ClassCastException - 如果object不是interfaceName的实例
    • verifyCategoryForValue

      public static void verifyCategoryForValue(Class<?> category, Attribute attribute)
      验证给定属性类别对象是否等于给定属性值对象的类别。如果是,则此方法返回不执行任何操作。如果不是,则此方法抛出异常。
      参数:
      category - 要测试的属性类别
      attribute - 要测试的属性值
      抛出:
      NullPointerException - 如果categoryattributenull
      IllegalArgumentException - 如果category不等于attribute的类别