モジュール java.desktop
パッケージ javax.imageio.spi

クラスServiceRegistry

java.lang.Object
javax.imageio.spi.ServiceRegistry
直系の既知のサブクラス:
IIORegistry

public class ServiceRegistry extends Object
Image I/Oサービス・タイプのサービス・プロバイダ・インスタンス用のレジストリ。

サービス・プロバイダは1つ以上のcategoriesに格納され、各プロバイダは、そのすべてのメンバーが実装する必要があるクラスまたはインタフェース(Classオブジェクトによって記述される)によって定義されます。

このクラスでサポートされている一連のカテゴリは、次の標準のImage I/Oサービス・タイプに限定されています:

上記の型のサブ型ではないプロバイダをロードしようとすると、IllegalArgumentExceptionが返されます。

サービス・プロバイダをロードする一般的なメカニズムについては、このクラスで使用される基礎となる標準メカニズムであるServiceLoaderを参照してください。

指定されたリーフ・クラス(つまり、任意の継承されたクラスやインタフェースではなく、getClass()で返された実際のクラス)の1つのインスタンスのみが登録できます。 つまり、com.mycompany.mypkg.GreenImageReaderProviderクラスがjavax.imageio.spi.ImageReaderSpiのサブクラスであるとします。 GreenImageReaderProviderインスタンスが登録されると、ImageReaderSpiクラスで定義されたカテゴリに格納されます。 GreenImageReaderProviderの新しいインスタンスが登録されると、前のインスタンスが置換されます。 通常、サービス・プロバイダ・オブジェクトは単体であるため、この動作は適切です。

サービス・プロバイダのクラスは軽量で、読み込みが迅速でなければなりません。 これらのインタフェースの実装は、ほかのクラスやネイティブ・コードに複雑に依存しないようにする必要があります。 複雑なサービスの場合の通常のパターンは、負荷の高いサービスに対して軽量なプロキシを登録するというものです。

適切な実行時アクセス権があれば、アプリケーションでレジストリの内容を必要に応じてカスタマイズできます。

サービス・プロバイダの作成方法とデプロイ方法については、ServiceLoaderのドキュメントを参照してください。

関連項目: