JavaTM 2
Platform
Std. Ed. v1.4.0

javax.imageio.spi
クラス IIORegistry

java.lang.Object
  |
  +--javax.imageio.spi.ServiceRegistry
        |
        +--javax.imageio.spi.IIORegistry

public final class IIORegistry
extends ServiceRegistry

サービスプロバイダインスタンスのレジストリです。サービスプロバイダクラスは、実行時にこれらのクラスを含む JAR ファイル内のメタ情報を使用して検出できます。目的は、比較的少ない負荷で、使用可能なサービスプロバイダクラスすべてのロードおよび検査を行うことです。その後、これらのクラスを使用して、実作業を実行する負荷の高いクラスの検出およびインスタンス化を実行します。この場合は、ImageReaderImageWriterImageTranscoderImageInputStream、および ImageOutputStream のインスタンスになります。

システムのクラスパス (たとえば、Sun の J2SDK 実装では jre/lib/ext ディレクトリ) で検出されたサービスプロバイダが、このクラスがインスタンス化されるとすぐに自動的にロードされます。

registerApplicationClasspathSpis メソッドが呼び出されると、アプリケーションのクラスパスの JAR ファイルのメタ情報セクションで宣言されたサービスプロバイダインスタンスがロードされます。サービスプロバイダを宣言するには、各 JAR ファイルに存在する META-INF ディレクトリ内に services サブディレクトリを配置します。このディレクトリ内には、JAR ファイル内に存在する 1 つ以上の実装クラスを保持するサービスプロバイダインタフェースごとに 1 つのファイルが含まれます。たとえば、JAR ファイルが ImageReaderSpi インタフェースを実装するクラス com.mycompany.imageio.MyFormatReaderSpi を含む場合は、JAR ファイルには次の名前のファイルが含まれます。

 META-INF/services/javax.imageio.spi.ImageReaderSpi
 
また、次の行が含まれます。
 com.mycompany.imageio.MyFormatReaderSpi
 

サービスプロバイダクラスの特性は、軽量で迅速なロードが可能であることです。このため、これらのインタフェースの実装は、他のクラスやネイティブコードに複雑に依存しないようにする必要があります。

自動的に検出されないサービスプロバイダを手動で追加することも、ServiceRegistry クラスのインタフェースを使用するサービスプロバイダを削除することもできます。したがって、アプリケーションでレジストリの内容を必要に応じてカスタマイズできます。

サービスプロバイダ宣言の詳細および JAR 形式全般については、 「JAR File Specification」を参照してください。


入れ子クラスの概要
 
クラス javax.imageio.spi.ServiceRegistry から継承した入れ子クラス
ServiceRegistry.Filter
 
メソッドの概要
static IIORegistry getDefaultInstance()
          イメージ入出力 API で使用されるデフォルトの IIORegistry インスタンスを返します。
 void registerApplicationClasspathSpis()
          アプリケーションのクラスパスで検出されたすべての使用可能サービスプロバイダを、デフォルトの ClassLoader を使用して登録します。
 
クラス javax.imageio.spi.ServiceRegistry から継承したメソッド
contains, deregisterAll, deregisterAll, deregisterServiceProvider, deregisterServiceProvider, finalize, getCategories, getServiceProviderByClass, getServiceProviders, getServiceProviders, lookupProviders, lookupProviders, registerServiceProvider, registerServiceProvider, registerServiceProviders, setOrdering, unsetOrdering
 
クラス java.lang.Object から継承したメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getDefaultInstance

public static IIORegistry getDefaultInstance()
イメージ入出力 API で使用されるデフォルトの IIORegistry インスタンスを返します。このインスタンスはすべてのレジストリ関数で使用されます。

ThreadGroup は独自のインスタンスを受け取ります。これにより、たとえば同じブラウザの別の Applet がそれぞれ独自のレジストリを持つことができます。

戻り値:
現在の ThreadGroup のデフォルトレジストリ

registerApplicationClasspathSpis

public void registerApplicationClasspathSpis()
アプリケーションのクラスパスで検出されたすべての使用可能サービスプロバイダを、デフォルトの ClassLoader を使用して登録します。このメソッドは通常 ImageIO.scanForPlugins メソッドから呼び出されます。

関連項目:
ImageIO.scanForPlugins(), ClassLoader.getResources(java.lang.String)

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.