- java.lang.Object
-
- javax.print.PrintServiceLookup
-
public abstract class PrintServiceLookup extends Object
このクラスの実装は、特定のタイプの印刷サービス(通常はプリンタと同義)用の検索サービスを提供します。複数の実装を同時にインストールできます。 すべての実装で、検出されたプリンタを
PrintServiceのインスタンスとして記述できる必要があります。 通常、このサービス・クラスの実装は、自動的にJARファイル内で検出されます(SPI JARファイル仕様を参照)。 これらのクラスは、デフォルト・コンストラクタを使用してインスタンス化可能である必要があります。 別の方法として、実行時にアプリケーションがインスタンスを明示的に登録することも可能です。アプリケーションは、この抽象クラスのstaticメソッドのみを使用します。 インスタンス・メソッドは、サービス・プロバイダによりサブクラス内で実装されます。また、インストール済のルックアップ・クラスすべての結果の統合が、アプリケーションによる呼出し時に、このクラスのstaticメソッドにより報告されます。
PrintServiceLookup実装者は、信頼できないコードへのアクセスを拒否するためにSecurityManager.checkPrintJobAccess()をチェックすることをお薦めします。 この推奨ポリシーに従うと、信頼されないコードがプリント・サービスを一切検出できなくなります。 ダウンロードされたアプレットは、信頼されないコードのもっとも一般的な例です。この検査はルックアップ・サービス単位で実行されるため、異なるルックアップ・サービスのニーズをポリシーに柔軟に反映することが可能になります。
セキュリティ・マネージャがインストールされていて、その
checkPrintJobAccess()メソッドがアクセスを拒否した場合、registerService(PrintService)によって登録されたサービスはルックアップ結果に含まれません。
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 PrintServiceLookup()
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract PrintServicegetDefaultPrintService()アプリケーションから直接呼び出されることはありません。abstract MultiDocPrintService[]getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)アプリケーションから直接呼び出されることはありません。abstract PrintService[]getPrintServices()アプリケーションから直接呼び出されることはありません。abstract PrintService[]getPrintServices(DocFlavor flavor, AttributeSet attributes)指定された属性とDocFlavorsの組合せをサポートするために肯定的に確認できるサービスを見つけます。static PrintServicelookupDefaultPrintService()この環境のデフォルト印刷サービスを検出します。static MultiDocPrintService[]lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)指定されたすべてのdocフレーバを含むMultiDocsを出力できるMultiDoc印刷Servicesを見つけます。static PrintService[]lookupPrintServices(DocFlavor flavor, AttributeSet attributes)指定されたDocFlavorの印刷が可能な印刷サービスを検索します。static booleanregisterService(PrintService service)印刷サービスを実装するクラスのインスタンスを、アプリケーションが直接登録することを可能にします。static booleanregisterServiceProvider(PrintServiceLookup sp)アプリケーションが、ルックアップ・サービスを実装するクラスを明示的に登録することを可能にします。
-
-
-
メソッドの詳細
-
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印刷Servicesを見つけます。このメソッドは、
MultiDocの印刷が可能なサービスの検出に有用です。MultiDoc内では、要素のフレーバが異なってもかまいません。 アプリケーションは、各DocFlavorに対して複数のルックアップを次々に実行し、結果を照合することで同じ処理を実行できますが、ルックアップ・サービスを使用するとより効率的に実行できます。- パラメータ:
flavors- 印刷するフレーバ。nullまたは空の場合、この制約は使用されません。 それ以外の場合、指定された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を返します。
-
-