JavaTM Platform
Standard Ed. 6

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 の JDK 実装では jre/lib/ext ディレクトリ) で検出されたサービスプロバイダが、このクラスがインスタンス化されるとすぐに自動的にロードされます。  

registerApplicationClasspathSpis メソッドが呼び出されると、アプリケーションのクラスパスの JAR ファイルのメタ情報セクションで宣言されたサービスプロバイダインスタンスがロードされます。サービスプロバイダを宣言するために、services サブディレクトリが各 JAR ファイルに存在する META-INF ディレクトリ内に配置されます。このディレクトリには、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 Platform
Standard Ed. 6

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

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。