JavaTM Platform
Standard Ed. 6

javax.sql.rowset.spi
クラス SyncFactory

java.lang.Object
  上位を拡張 javax.sql.rowset.spi.SyncFactory

public class SyncFactory
extends Object

未接続の RowSetオブジェクトによって使用される SyncProviderインスタンスを生成するサービスプロバイダインタフェース (Service Provider Interface、SPI) 機構です。SyncProviderインスタンスは、RowSetオブジェクトが自身にデータを移植するために必要な javax.sql.RowSetReaderオブジェクトと、変更されたデータを配下のデータソースに渡すために必要な javax.sql.RowSetWriterオブジェクトを提供します。  

SyncFactory クラスのメソッドはすべて static なので、Java VMごとに同時に複数の SyncFactory オブジェクトが存在することはできません。このため、RowSet実装は、常に単一のソースから SyncProvider 実装を取得することになります。  

1.0 概要

SyncFactoryクラスは、使用可能な同期プロバイダ実装 (SyncProviderオブジェクト)の内部レジストリを提供します。このレジストリを照会することで、使用可能な同期プロバイダを確認できます。以下は、現在登録されているプロバイダを列挙するコードです。
     java.util.Enumeration e = SyncFactory.getRegisteredProviders();
 
すべての標準 RowSet実装は、少なくとも次の 2 つのプロバイダを提供する必要があります。 JDBC RowSet 実装には、この要件を満たす SyncProvider実装 RIOptimisticProviderおよび RIXmlProviderが含まれる点に注意してください。  

SyncFactory クラスは、アプリケーションが現在 SyncFactoryに登録されている同期プロバイダを確認するために役立つアクセス用メソッドを提供します。  

その他のメソッドには、RowSet持続プロバイダをファクトリ機構に登録したり、登録を解除したりする働きがあります。このため、RowSetオブジェクトは、実行時にその他の同期プロバイダ実装も使用することができます。  

アプリケーションは、フィルタリングの段階を適用することで、SyncProvider実装が提供する同期のレベルを確定できます。RowSetオブジェクトがプロバイダを使用できるかどうかは、次の基準で決定されます。

  1. RowSet オブジェクトによって指定された特定のプロバイダの参照が、SyncFactoryに含まれない場合、同期プロバイダが見つからないことを示す SyncFactoryException がスローされる  

  2. RowSet実装が登録済みの特定のプロバイダによってインスタンス化される場合、要求されたプロバイダが提供される。そうでない場合は SyncFactoryExceptionがスローされる  

  3. RowSet オブジェクトが SyncProvider実装を指定せず、そのほかに利用可能な SyncProvider実装が存在しない場合、リファレンス実装プロバイダが提供される

2.0SyncProvider 実装の登録

ベンダーも開発者も、次のいずれかの機構を使って SyncProvider 実装を登録できます。

次に、アプリケーションにより、JNDI コンテキストが SyncFactoryインスタンスに登録されます。これにより、SyncFactoryは、JNDI コンテキスト内をブラウズして、SyncProvider実装を検索できるようになります。
    Hashtable appEnv = new Hashtable();
    appEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming");
    appEnv.put(Context.PROVIDER_URL, "iiop://hostname/providers");
    Context ctx = new InitialContext(appEnv);

    SyncFactory.registerJNDIContext(ctx);
 
RowSetオブジェクトが MyProviderオブジェクトの取得を試みる場合、SyncFactoryはこれを検出しようとします。最初にシステムプロパティー内を検索し、次にリソースファイル内を検索し、最終的には設定されている JNDIコンテキストをチェックします。SyncFactoryインスタンスは、要求されたプロバイダが SyncProvider abstract クラスの有効な拡張であることを確認して、RowSetオブジェクトに渡します。以下のコードの抜粋では、新しい CachedRowSetオブジェクトを作成し、MyProviderのバインディングを含む envで初期化します。
    Hashtable env = new Hashtable();
    env.put(SyncFactory.ROWSET_SYNC_PROVIDER, "com.fred.providers.MyProvider");
    CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl(env); 
 
これらの機構の詳細については、javax.sql.rowset.spiパッケージの仕様を参照してください。

関連項目:
SyncProvider, SyncFactoryException

フィールドの概要
static String ROWSET_SYNC_PROVIDER
          同期プロバイダの実装名を表す標準プロパティー ID です。
static String ROWSET_SYNC_PROVIDER_VERSION
          同期プロバイダの実装のバージョンタグを表す標準プロパティー ID です。
static String ROWSET_SYNC_VENDOR
          同期プロバイダのベンダー名を表す標準プロパティー ID です。
 
メソッドの概要
static SyncProvider getInstance(String providerID)
          providerIDで識別される SyncProviderインスタンスを返します。
static Logger getLogger()
          アプリケーションが SyncProvider 実装によって表示された同期イベントを取得するために必要なログオブジェクトを返します。
static Enumeration<SyncProvider> getRegisteredProviders()
          現在登録されている同期プロバイダを列挙します。
static SyncFactory getSyncFactory()
          SyncFactory シングルトンを返します。
static void registerProvider(String providerID)
          指定された同期プロバイダをファクトリレジスタへ追加します。
static void setJNDIContext(Context ctx)
          JNDI 名前空間から SyncProvider 実装を取得する初期 JNDI コンテキストを設定します。
static void setLogger(Logger logger)
          SyncFactoryが提供する SyncProvider 実装によって使用されるログオブジェクトを設定します。
static void setLogger(Logger logger, Level level)
          SyncFactory SPI が提供する SyncProvider 実装によって使用されるログオブジェクトを設定します。
static void unregisterProvider(String providerID)
          現在登録されている指定の同期プロバイダをファクトリ SPI レジスタから削除します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ROWSET_SYNC_PROVIDER

public static String ROWSET_SYNC_PROVIDER
同期プロバイダの実装名を表す標準プロパティー ID です。


ROWSET_SYNC_VENDOR

public static String ROWSET_SYNC_VENDOR
同期プロバイダのベンダー名を表す標準プロパティー ID です。


ROWSET_SYNC_PROVIDER_VERSION

public static String ROWSET_SYNC_PROVIDER_VERSION
同期プロバイダの実装のバージョンタグを表す標準プロパティー ID です。

メソッドの詳細

registerProvider

public static void registerProvider(String providerID)
                             throws SyncFactoryException
指定された同期プロバイダをファクトリレジスタへ追加します。SyncProvider実装の必要とする命名規則のガイドラインについては、SyncProvider仕様を参照してください。  

JNDI コンテキストにバインドされた同期プロバイダを登録するには、SyncProvider インスタンスを JNDI名前空間にバインドします。

さらに、JNDI コンテキストは、setJNDIContextメソッドにより SyncFactoryに初期設定されます。SyncFactoryは、このコンテキストを利用して、JNDIコンテキストとその子ノードにバインドされた使用可能な SyncProviderオブジェクトを検索します。

パラメータ:
providerID - 登録される同期プロバイダの 一意の ID を持つ String オブジェクト
例外:
SyncFactoryException - 空または null のプロバイダ名を返す 処理が試行された場合
関連項目:
setJNDIContext(javax.naming.Context)

getSyncFactory

public static SyncFactory getSyncFactory()
SyncFactory シングルトンを返します。

戻り値:
SyncFactory インスタンス

unregisterProvider

public static void unregisterProvider(String providerID)
                               throws SyncFactoryException
現在登録されている指定の同期プロバイダをファクトリ SPI レジスタから削除します。

パラメータ:
providerID - 同期プロバイダの一意の ID
例外:
SyncFactoryException - 未登録の SyncProvider 実装の登録を解除する 処理が試行された場合

getInstance

public static SyncProvider getInstance(String providerID)
                                throws SyncFactoryException
providerIDで識別される SyncProviderインスタンスを返します。

パラメータ:
providerID - 一意のプロバイダ識別子
戻り値:
SyncProvider 実装
例外:
SyncFactoryException - SyncProvider が見つからない場合、 またはこのプロバイダの呼び出し時に何らかのエラーが発生した場合

getRegisteredProviders

public static Enumeration<SyncProvider> getRegisteredProviders()
                                                        throws SyncFactoryException
現在登録されている同期プロバイダを列挙します。RowSet実装は、列挙されたプロバイダのいずれかを SyncProviderオブジェクトとして使用できます。  

最小限、JDBC ドライバを使って RowSet コンテンツデータを格納できるようにする参照同期プロバイダを使用できます。 列挙。

戻り値:
Enumeration このファクトリに登録されている 使用可能な同期プロバイダの列挙
例外:
SyncFactoryException

setLogger

public static void setLogger(Logger logger)
SyncFactoryが提供する SyncProvider 実装によって使用されるログオブジェクトを設定します。すべての SyncProvider実装は、このオブジェクトにイベントを記録できます。 アプリケーションは、getLoggerメソッドを使ってこのオブジェクトのハンドルを取得できます。

パラメータ:
logger - Logger オブジェクトインスタンス

setLogger

public static void setLogger(Logger logger,
                             Level level)
SyncFactory SPI が提供する SyncProvider 実装によって使用されるログオブジェクトを設定します。すべての SyncProvider実装は、このオブジェクトにイベントを記録できます。 アプリケーションは、getLoggerメソッドを使ってこのオブジェクトのハンドルを取得できます。

パラメータ:
logger - Logger オブジェクトインスタンス
level - 必要なログの段階を示す Level オブジェクト インスタンス

getLogger

public static Logger getLogger()
                        throws SyncFactoryException
アプリケーションが SyncProvider 実装によって表示された同期イベントを取得するために必要なログオブジェクトを返します。

例外:
SyncFactoryException - ログオブジェクトが設定されていない場合

setJNDIContext

public static void setJNDIContext(Context ctx)
                           throws SyncFactoryException
JNDI 名前空間から SyncProvider 実装を取得する初期 JNDI コンテキストを設定します。

パラメータ:
ctx - 有効な JNDI コンテキスト
例外:
SyncFactoryException - 指定された JNDI コンテキストが null の場合

JavaTM Platform
Standard Ed. 6

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

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