目次||

属性セット

通常、クライアントは、印刷ジョブの送信の際に複数の処理命令を提供する必要があります。たとえば、A4媒体を使用し、横方向に印刷することを指定します。クライアントでは、複数の処理命令をプリンタに送信するために、それらの命令を表す属性を収集して1つの属性セットにまとめます。Java印刷サービスAPIでは、属性セットはAttributeSetインタフェースとして表現されます。

AttributeSetインタフェースは、java.util.Mapインタフェースと似ています。つまり、値およびキーの対応関係を指定し、各キーは一意で、1つの値しか指定できません。ただし、AttributeSetインタフェースは、Java印刷サービスAPIの要件に対応するためのインタフェースです。AttributeSetの要件は次のとおりです。

単一の属性と同様に、属性セットには役割があります。これらの役割は、「属性の役割」のセクションで説明されているAttributeのサブインタフェースに似ているAttributeSetサブインタフェースで定義されます。AttributeSetのサブインタフェースは、PrintRequestAttributeSet、PrintJobAttributeSet、DocAttributeSet、およびPrintServiceAttributeSetで構成されます。属性セットの役割によって、構成される属性の種類が決まります。たとえば、印刷要求の属性セットを、印刷要求の属性だけで構成できます。

Java印刷サービスAPIには、AttributeSetインタフェースの固定実装としてHashAttributeSetが組み込まれていますが、開発者が独自の実装を組み込むこともできます。多くのアプリケーションでは、HashAttributeSetを直接使用せずに、HashAttributeSetのサブクラス(HashPrintRequestAttributeSet、HashPrintJobAttributeSet、HashDocumentAttributeSet、およびHashPrintServiceAttributeSet)のいずれかを使用します。これらのサブクラスには、AttributeSetの対応するサブインタフェースが実装されます。たとえば、PrintRequestAttributeSetはAttributeSetを継承し、PrintRequestAttributeSetの固定実装はHashPrintRequestAttributeSetになります。属性セットを作成するときに、HashPrintRequestAttributeSet、またはPrintRequestAttributeSetの任意の実装を使用したときは、要求属性だけを含めることができます。

そのサブクラスとは異なり、HashAttributeSetには任意の種類の属性を含めることができます。複数の種類の属性を属性セットに含めるときは、HashAttributeSetをアプリケーションから直接使用します。たとえば、PrintServiceのgetUnsupportedAttributesメソッドから返される属性セットを挙げることができます。サポートされない属性が返されたときに、その属性は複数の属性機能に属している可能性があります。

印刷要求の指定は印刷アプリケーションの主要な機能であるため、単一の属性と同様に、多くのアプリケーションは要求属性セットを作成します。要求属性セットを作成するときは、HashPrintRequestAttributeSetクラスのいずれかのコンストラクタを使用します。

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
次のセクションでは、属性セットに追加できる属性のうち、使用頻度の高いものについて説明します。

目次||

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.