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구현 RIOptimisticProviderRIXmlProvider가 포함되는 점에 주의해 주세요.  

SyncFactory 클래스는, 어플리케이션이 현재 SyncFactory에 등록되어 있는 동기 프로바이더를 확인하기 위해서 도움이 되는 액세스용 메소드를 제공합니다.  

그 외의 메소드에는,RowSet지속 프로바이더를 팩토리 기구에 등록하거나 등록을 해제하거나 하는 기능이 있습니다. 이 때문에,RowSet객체는, 실행시에 그 외의 동기 프로바이더 구현도 사용할 수가 있습니다.  

어플리케이션은, 필터링의 단계를 적용하는 것으로,SyncProvider구현이 제공하는 동기의 레벨을 확정할 수 있습니다. RowSet객체가 프로바이더를 사용할 수 있을지 어떨지는, 다음의 기준으로 결정됩니다.

  1. RowSet 객체에 의해 지정된 특정의 프로바이더의 참조가,SyncFactory에 포함되지 않는 경우, 동기 프로바이더가 발견되지 않는 것을 나타내는 SyncFactoryException 가 throw 되는  

  2. RowSet구현이 등록을 마친 특정의 프로바이더에 의해 인스턴스화 되는 경우, 요구된 프로바이더가 제공된다. 그렇지 않은 경우는 SyncFactoryException가 throw 되는  

  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는 이것을 검출하려고 합니다. 최초로 시스템 프로퍼티내를 검색해, 다음에 resource file내를 검색해, 최종적으로는 설정되어 있는 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 문맥과 그 자식(child) 노드에 바인드 된 사용 가능한 SyncProvider객체를 검색합니다.

파라미터:
providerID - 등록되는 동기 프로바이더의 일의의 ID 를 가지는 String 객체
예외:
SyncFactoryException - 빈 상태(empty) 또는 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 도 참조해 주세요.