複数の実装を同時にインストールできます。 すべての実装は、配置されたプリンタをPrintService
のインスタンスとして記述できる必要があります。 通常、このサービス・クラスの実装は、自動的にJARファイル内で検出されます(SPI JARファイル仕様を参照)。 これらのクラスは、デフォルト・コンストラクタを使用してインスタンス化可能である必要があります。 別の方法として、実行時にアプリケーションがインスタンスを明示的に登録することも可能です。
アプリケーションは、この抽象クラスのstaticメソッドのみを使用します。 インスタンス・メソッドは、サービス・プロバイダによりサブクラス内で実装されます。また、インストール済のルックアップ・クラスすべての結果の統合が、アプリケーションによる呼出し時に、このクラスのstaticメソッドにより報告されます。
PrintServiceLookup
実装者は、信頼できないコードへのアクセスを拒否するためにSecurityManager.checkPrintJobAccess()
をチェックすることを推奨します。 この推奨ポリシーに従うと、信頼されないコードがプリント・サービスを一切検出できなくなります。 ダウンロードされたアプレットは、信頼されないコードのもっとも一般的な例です。
この検査はルックアップ・サービス単位で実行されるため、異なるルックアップ・サービスのニーズをポリシーに柔軟に反映することが可能になります。
セキュリティ・マネージャがインストールされ、checkPrintJobAccess()
メソッドがアクセスを拒否した場合、registerService(PrintService)
によって登録されたサービスは検索結果に含まれません。
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明abstract PrintService
アプリケーションから直接呼び出されることはありません。abstract MultiDocPrintService[]
getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
アプリケーションから直接呼び出されることはありません。abstract PrintService[]
アプリケーションから直接呼び出されることはありません。abstract PrintService[]
getPrintServices(DocFlavor flavor, AttributeSet attributes)
指定された属性とDocFlavors
の組み合わせをサポートすることが確実に確認できるサービスを特定します。static PrintService
この環境のデフォルト印刷サービスを検出します。static MultiDocPrintService[]
lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
指定されたすべてのdocフレーバを含むMultiDocs
を印刷できるMultiDoc
printServices
を検索します。static PrintService[]
lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
指定されたDocFlavor
の印刷が可能な印刷サービスを検索します。static boolean
registerService(PrintService service)
印刷サービスを実装するクラスのインスタンスを、アプリケーションが直接登録することを可能にします。static boolean
アプリケーションが、ルックアップ・サービスを実装するクラスを明示的に登録することを可能にします。
-
コンストラクタの詳細
-
PrintServiceLookup
protected PrintServiceLookup()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
lookupPrintServices
public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes)指定されたDocFlavor
の印刷が可能な印刷サービスを検索します。- パラメータ:
flavor
- 印刷するフレーバ。null
の場合、この制約は使用されません。attributes
- 印刷サービスがサポートする必要のある属性。null
の場合、この制約は使用されません。- 戻り値:
- 指定されたフレーバ属性をサポートする印刷サービスを表す、一致する
PrintService
オブジェクトの配列。 一致するサービスが存在しない場合、配列の長さはゼロになる。
-
lookupMultiDocPrintServices
public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)指定されたすべてのdocフレーバを含むMultiDocs
を印刷できるMultiDoc
printServices
を検索します。このメソッドは、
MultiDoc
の印刷が可能なサービスの検出に有用です。MultiDoc内では、要素のフレーバが異なってもかまいません。 アプリケーションは、各DocFlavor
に対して複数のルックアップを次々に実行し、結果を照合することで同じ処理を実行できますが、ルックアップ・サービスを使用するとより効率的に実行できます。- パラメータ:
flavors
- 印刷するフレーバ。null
またはemptyの場合、この制約は使用されません。 それ以外の場合、指定されたdocフレーバをすべて印刷可能なmultidoc印刷サービスだけが返されるattributes
- 印刷サービスがサポートする必要のある属性。null
の場合、この制約は使用されません。- 戻り値:
- 一致する
MultiDocPrintService
オブジェクトの配列。 一致するサービスが存在しない場合、配列の長さはゼロになる。
-
lookupDefaultPrintService
public static final PrintService lookupDefaultPrintService()この環境のデフォルト印刷サービスを検出します。null
を返すこともあります。 複数のルックアップ・サービスそれぞれでデフォルトが指定されている場合、選択されたサービスは厳密には定義されませんが、インストール済みのサービスではなく、プラットフォーム・ネイティブのサービスがデフォルトとして返されます。 明確に識別可能なプラットフォーム・ネイティブのデフォルト印刷サービスが存在しない場合、実装固有の方法で最初に検出されたサービスがデフォルトになります。これには、Javaまたはネイティブ・プラット・フォームの一部として利用可能な設定APIのどれかを活用することが含まれます。 このアルゴリズムは、ユーザー
javax.print.defaultPrinter
を設定することによって無効にすることができます。 指定されたサービスが有効なサービスとして検出され、かつデフォルトとして返すことができなければいけません。- 戻り値:
- デフォルトの
PrintService
-
registerServiceProvider
public static boolean registerServiceProvider(PrintServiceLookup sp)アプリケーションが、ルックアップ・サービスを実装するクラスを明示的に登録することを可能にします。 登録は、複数のVM呼出しで持続するものではありません。 インストールの一部ではないサービスをアプリケーションが新たに利用可能にする場合に役立ちます。 ルックアップ・サービスがすでに登録されている場合、または登録できない場合、このメソッドはfalse
を返します。- パラメータ:
sp
- ルックアップ・サービスの実装- 戻り値:
- 新規ルックアップ・サービスを新たに登録する場合は
true
、そうでない場合はfalse
-
registerService
public static boolean registerService(PrintService service)印刷サービスを実装するクラスのインスタンスを、アプリケーションが直接登録することを可能にします。 このサービスのルックアップ操作は、サービスによって報告された属性値とクラスを使用してPrintServiceLookup
クラスによって実行されます。 これは、そのサービス用に調整されたルックアップ・サービスほど効率的ではない場合があります。 このため、PrintServiceLookup
インスタンスを登録することをお勧めします。 このサービスが以前に登録されておらず、正しく登録されている場合、このメソッドはtrue
を返します。 このメソッドは、StreamPrintService
インスタンスでは呼び出さないでください。 それらは常に登録に失敗し、メソッドはfalse
を返します。- パラメータ:
service
-印刷サービスの実装- 戻り値:
- サービスを新規登録する場合は
true
、そうでない場合はfalse
-
getPrintServices
public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes)指定された属性とDocFlavors
の組み合わせをサポートすることが確実に確認できるサービスを特定します。 このメソッドが、アプリケーションから直接呼び出されることはありません。サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。
結果は、すべての
PrintServices
を取得し、指定された属性とフレーバをサポートするかどうかを個別に問合せするのと同じにする必要がありますが、印刷サービスのルックアップ・サービスの機能を利用すると効率的です。- パラメータ:
flavor
- 必須ドキュメントのフレーバ。null
の場合は無視されます。attributes
- サポートされる必要のある属性。null
の場合、この制約は使用されません。- 戻り値:
- 一致する
PrintServices
の配列。 一致するサービスが存在しない場合、配列の長さはゼロになる。
-
getPrintServices
public abstract PrintService[] getPrintServices()アプリケーションから直接呼び出されることはありません。 サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。- 戻り値:
- このルックアップ・サービス・クラスに知られているすべての
PrintServices
の配列。 存在しない場合、配列の長さはゼロになる。
-
getMultiDocPrintServices
public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)アプリケーションから直接呼び出されることはありません。サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。
属性と
DocFlavors
の組み合わせをサポートすることが確実に確認できるMultiDoc
プリント・サービスを特定します。- パラメータ:
flavors
- 必須ドキュメントのフレーバ。null
または空の場合は無視されます。attributes
- サポートされる必要のある属性。null
の場合、この制約は使用されません。- 戻り値:
- 一致する
PrintServices
の配列。 一致するサービスが存在しない場合、配列の長さはゼロになる。
-
getDefaultPrintService
public abstract PrintService getDefaultPrintService()アプリケーションから直接呼び出されることはありません。 サービス・プロバイダがこれを実装し、印刷ルックアップ・サービスが呼び出します。- 戻り値:
- このルックアップ・サービスのデフォルトの
PrintService
。 デフォルト値がない場合は、null
を返します。
-