JavaTM Platform
Standard Ed. 6

javax.naming.spi
인터페이스 StateFactory

기존의 서브 인터페이스의 일람:
DirStateFactory


public interface StateFactory

이 인터페이스는, 객체의 바인딩 상태를 취득하는 팩토리를 나타냅니다.

JNDI 시스템에서는,객체 팩토리를 사용해 객체 구현을 동적으로 로드할 수 있습니다. 예를 들어 이름 공간에 바인드 된 프린터를 검색하는 경우, 인쇄 서비스가 프린터명을 Reference 에 바인드 하면(자), 프린터 Reference 를 사용해 프린터 객체를 생성해, 룩 업의 호출측이 룩 업 후에 직접 프린터 객체로 조작할 수 있게 됩니다.

ObjectFactory 는 특정의 형태의 객체 생성을 실시합니다. 상기의 예에서는,Printer 객체의 생성에 PrinterObjectFactory 를 사용할 수 있습니다.

역의 프로세스에서는, 객체가 이름 공간에 바인드 되고 있는 경우, JNDI 는 「상태 팩토리」를 제공합니다. 여기에서도 프린터를 예를 들어, 프린터 객체가 갱신되어 재차 바인드 되는 경우를 생각합니다.

 ctx.rebind ("inky", printer) ;
 
ctx 의 서비스 프로바이더는, 상태 팩토리를 사용해 printer 의 이름 공간에의 바인딩 상태를 가져옵니다. Printer 타입 객체 상태 팩토리는, 네이밍 시스템에서의 기억을 위해서(때문에), 보다 컴팩트한 객체를 돌려주는 일이 있습니다.

상태 팩토리는 StateFactory 인터페이스를 구현할 필요가 있습니다. 또 팩토리 클래스는 public 인 것이 필요해, 한편 파라미터를 잡히지 않는 public 생성자 을 가질 필요가 있습니다.

상태 팩토리의 getStateToBind() 메소드는, 다른 파라미터를 사용해 여러 차례 불려 가는 일이 있습니다. 구현은 thread 세이프입니다.

StateFactoryContext 인터페이스만을 구현하고 있는 서비스 프로바이더 대상입니다. DirStateFactoryDirContext 인터페이스를 구현하고 있는 서비스 프로바이더 대상입니다.

도입된 버젼:
1.3
관련 항목:
NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable) , DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, javax.naming.directory.Attributes) , ObjectFactory , DirStateFactory

메소드의 개요
 Object getStateToBind (Object  obj, Name  name, Context  nameCtx, Hashtable <?,?> environment)
          객체의 바인딩 상태를 가져옵니다.
 

메소드의 상세

getStateToBind

Object  getStateToBind(Object  obj,
                      Name  name,
                      Context  nameCtx,
                      Hashtable <?,?> environment)
                      throws NamingException 
객체의 바인딩 상태를 가져옵니다.

NamingManager.getStateToBind() 는 상태 팩토리에 연속적으로 로드해, 1 개(살)이 null 이외의 대답을 생성할 때까지 상태 팩토리상에서 이 메소드를 계속 호출합니다. DirectoryManager.getStateToBind() 는 상태 팩토리에 연속적으로 로드합니다. 팩토리가 DirStateFactory 를 구현하고 있으면,DirectoryManagerDirStateFactory.getStateToBind() 를 호출합니다. 그렇지 않은 경우는 StateFactory.getStateToBind() 를 호출합니다.

팩토리가 예외를 throw 하면(자), 그 예외는 NamingManager.getStateToBind()DirectoryManager.getStateToBind() 의 호출 측에 건네받습니다. null 이외의 대답을 생성할 가능성이 있는 것 외의 팩토리의 검색은 정지합니다. 팩토리는, 그것이 목적의 유일한 팩토리이며, 다른 팩토리를 검색할 필요가 없는 것이 확실한 경우에게만, 예외를 throw 하도록(듯이) 합니다. 이 팩토리가 지정된 인수로 객체를 생성할 수 없는 경우는, null 를 돌려줍니다.

name 파라미터 및 nameCtx 파라미터를 임의에 사용해, 생성중의 객체의 이름을 지정할 수 있습니다. 자세한 것은,ObjectFactory.getObjectInstance() 의 「이름 파라미터와 문맥 파라미터」의 설명을 참조해 주세요. 팩토리가 nameCtx 를 사용하는 경우는, 그 사용을 병행 액세스와 동기화하도록(듯이) 합니다. 문맥 구현은 thread 세이프인 것이 보증되어 있지 않기 때문입니다.

name 파라미터 및 environment 파라미터는, 호출측이 소유합니다. 구현은 이러한 객체를 변경하지 않고, 그 객체에 대한 참조도 보관 유지합니다만, 복제 또는 카피에 대한 참조를 보관 유지하는 일이 있습니다.

파라미터:
obj - 상태를 취득하는 null 이외의 객체
name - nameCtx 에 관련하는 이 객체의 이름. 또는, 이름을 지정하지 않는 경우는 null
nameCtx - name 파라미터의 지정에 관련하는 문맥, 또는 name 가 디폴트의 초기 문맥에 관련하는 경우는 null
environment - null 의 가능성이 있는, 객체 상태 의 생성에 사용되는 환경
반환값:
객체의 바인딩 상태. 팩토리가 아무것도 변경을 돌려주지 않는 경우는 null
예외:
NamingException - 객체 상태를 취득하려고 하고 있을 때 이 팩토리가 예외를 검출해, 다른 팩토리가 시행되지 않는 경우
관련 항목:
NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable) , DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, javax.naming.directory.Attributes)

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 도 참조해 주세요.