public abstract class PrintServiceLookup extends Object
複数の実装を同時にインストールできます。すべての実装が、検出されたプリンタをPrintServiceのインスタンスとして記述できなければいけません。通常、このサービス・クラスの実装は、自動的にJARファイル内で検出されます(SPI JARファイル仕様を参照)。これらのクラスは、デフォルト・コンストラクタを使用してインスタンス化可能である必要があります。別の方法として、実行時にアプリケーションがインスタンスを明示的に登録することも可能です。
アプリケーションは、この抽象クラスのstaticメソッドのみを使用します。インスタンス・メソッドは、サービス・プロバイダによりサブクラス内で実装されます。また、インストール済のルックアップ・クラスすべての結果の統合が、アプリケーションによる呼出し時に、このクラスのstaticメソッドにより報告されます。
信頼されないコードへのアクセスを拒否するため、PrintServiceLookup実装者にはSecurityManager.checkPrintJobAccess()を検査することをお勧めします。この推奨ポリシーに従うと、信頼されないコードがプリント・サービスを一切検出できなくなります。ダウンロードされたアプレットは、信頼されないコードのもっとも一般的な例です。
この検査はルックアップ・サービス単位で実行されるため、異なるルックアップ・サービスのニーズをポリシーに柔軟に反映することが可能になります。
セキュリティ・マネージャがインストールされた状態で、checkPrintJobAccess()メソッドがアクセスを拒否する場合、registerService(PrintService)により登録されるサービスは、ルックアップの結果には含まれません。
コンストラクタと説明 |
---|
PrintServiceLookup() |
修飾子と型 | メソッドと説明 |
---|---|
abstract PrintService |
getDefaultPrintService()
アプリケーションから直接呼び出されることはありません。
|
abstract MultiDocPrintService[] |
getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
アプリケーションから直接呼び出されることはありません。
|
abstract PrintService[] |
getPrintServices()
アプリケーションから直接呼び出されることはありません。
|
abstract PrintService[] |
getPrintServices(DocFlavor flavor, AttributeSet attributes)
指定された属性とDocFlavorの組み合わせをサポートすることを明確に確認可能なサービスを検出します。
|
static PrintService |
lookupDefaultPrintService()
この環境のデフォルト印刷サービスを検出します。
|
static MultiDocPrintService[] |
lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
指定されたdocフレーバすべてを含むMultiDocを印刷可能なMultiDoc印刷サービスを検出します。
|
static PrintService[] |
lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
指定された
DocFlavor の印刷が可能な印刷サービスを検索します。 |
static boolean |
registerService(PrintService service)
印刷サービスを実装するクラスのインスタンスを、アプリケーションが直接登録することを可能にします。
|
static boolean |
registerServiceProvider(PrintServiceLookup sp)
アプリケーションが、ルックアップ・サービスを実装するクラスを明示的に登録することを可能にします。
|
public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
DocFlavor
の印刷が可能な印刷サービスを検索します。flavor
- 印刷するフレーバ。nullの場合、この制約は使用されない。attributes
- 印刷サービスがサポートする必要のある属性。nullの場合、この制約は使用されない。PrintService
オブジェクトの配列。一致するサービスが存在しない場合、配列の長さはゼロになる。public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
このメソッドは、MultiDoc
の印刷が可能なサービスの検出に有用です。MultiDoc内では、要素のフレーバが異なってもかまいません。アプリケーションは、各DocFlavor
に対して複数のルックアップを次々に実行し、結果を照合することで同じ処理を実行できますが、ルックアップ・サービスを使用するとより効率的に実行できます。
flavors
- 印刷するフレーバ。nullまたは空の場合、この制約は使用されない。それ以外の場合、指定されたdocフレーバをすべて印刷可能なmultidoc印刷サービスだけが返されるattributes
- 印刷サービスがサポートする必要のある属性。nullの場合、この制約は使用されない。MultiDocPrintService
オブジェクトの配列。一致するサービスが存在しない場合、配列の長さはゼロになる。public static final PrintService lookupDefaultPrintService()
これには、Javaまたはネイティブ・プラット・フォームの一部として利用可能な設定APIのどれかを活用することが含まれます。このアルゴリズムは、javax.print.defaultPrinterプロパティを設定するユーザーによる上書きが可能です。指定されたサービスが有効なサービスとして検出され、かつデフォルトとして返すことができなければいけません。
public static boolean registerServiceProvider(PrintServiceLookup sp)
sp
- ルックアップ・サービスの実装。true
、そうでない場合はfalse
。public static boolean registerService(PrintService service)
PrintServiceLookup
インスタンスを登録することをお勧めします。このサービスが以前に登録されていない状態で、登録に成功する場合、メソッドはtrueを返します。このメソッドは、StreamPrintServiceインスタンスを使用して呼び出してはいけません。StreamPrintServiceインスタンスを使用して呼出しを行うと、登録は常に失敗し、メソッドはfalseを返します。service
-印刷サービスの実装。true
、そうでない場合はfalse
。public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes)
サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。
結果は、すべてのPrintServiceを取得して、指定された属性およびフレーバのサポートを個別に照会する場合と同じになります。ただし、印刷サービスのルックアップ・サービス機能を活用する方が、より効率的な処理が可能になります。
flavor
- 必須ドキュメントのフレーバ。nullの場合、これは無視されるattributes
- サポートされる必要のある属性。nullの場合、この制約は使用されない。public abstract PrintService[] getPrintServices()
public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。
指定された属性とDocFlavorの組み合わせをサポートすることを明確に確認可能な、MultiDoc印刷サービスを検出します。
flavors
- 必須ドキュメントのフレーバ。nullまたは空の場合、これは無視される。attributes
- サポートされる必要のある属性。nullの場合、この制約は使用されない。public abstract PrintService getDefaultPrintService()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.