JavaTM Platform
Standard Ed. 6

javax.naming.spi
인터페이스 DirStateFactory

모든 슈퍼 인터페이스:
StateFactory


public interface DirStateFactory
extends StateFactory

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

JNDI 시스템에서는,객체 팩토리를 사용해 객체 구현을 동적으로 로드할 수 있습니다.

DirStateFactory 는 StateFactory 를 확장해,getStateToBind() 메소드가 Attributes 인스턴스를 지정해 돌려줄 수가 있도록(듯이) 합니다. DirStateFactory 구현은 DirContext 서비스 프로바이더가 사용하는 것입니다. 호출측이 DirContext.bind() 를 사용해 객체를 바인드 할 때, 속성세트도 그 객체에 바인드 되도록(듯이) 지정할 수 있습니다. 바인드 되는 객체와 속성은, 팩토리의 getStateToBind() 메소드에게 건네집니다. 팩토리는, 객체와 속성을 처리하는 경우는 바인드 되는 객체와 속성의 해당 페어를 돌려줍니다. 객체를 처리하지 않는 경우, 팩토리는 null 를 돌려줄 필요가 있습니다.

예를 들어, 호출측이 프린터 객체를 프린터 관련의 속성과 바인드 하는 일이 있습니다.

 ctx.rebind("inky", printer, printerAttrs);
ctx 의 LDAP 서비스 프로바이더는 (DirectoryManager.getStateToBind() 를 사용해 간접적으로) DirStateFactory 를 사용해,DirStateFactoryprinterprinterAttrs 를 지정합니다. LDAP 디렉토리의 팩토리는 printer 를 속성세트로 바꾸어 그것을 printerAttrs 와 머지 합니다. 계속되어 서비스 프로바이더가 그 속성을 사용해 LDAP 엔트리를 생성해, 디렉토리를 갱신합니다.

DirStateFactoryStateFactory 를 확장하므로, 2 개의 getStateToBind() 메소드를 가집니다. 이 2 개의 메소드는 속성 인수가 다릅니다. DirectoryManager.getStateToBind() 는 속성 인수를 받아들이는 형식만을 사용해,NamingManager.getStateToBind() 는 속성 인수를 받아들이지 않는 형식만을 사용합니다.

DirStateFactory 의 getStateToBind() 메소드의 어느 쪽인가의 형식이, 다른 파라미터를 사용해 여러 차례 불려 가는 일이 있습니다. 구현은 thread 세이프입니다.

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

상자의 클래스의 개요
static class DirStateFactory.Result
          DirStateFactory.getStateToBind()의 결과를 돌려주는, 객체와 속성의 페어입니다.
 
메소드의 개요
 DirStateFactory.Result getStateToBind (Object  obj, Name  name, Context  nameCtx, Hashtable <?,?> environment, Attributes  inAttrs)
          변환 대상의 객체 및 속성을, 바인딩 하기 위해서 객체 상태를 가져옵니다.
 
인터페이스 javax.naming.spi. StateFactory 로부터 상속된 메소드
getStateToBind
 

메소드의 상세

getStateToBind

DirStateFactory.Result  getStateToBind(Object  obj,
                                      Name  name,
                                      Context  nameCtx,
                                      Hashtable <?,?> environment,
                                      Attributes  inAttrs)
                                      throws NamingException 
변환 대상의 객체 및 속성을, 바인딩 하기 위해서 객체 상태를 가져옵니다.

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

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

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

name,inAttrs, 및 environment 의 각 파라미터는, 호출측이 소유합니다. 구현은 이러한 객체를 변경하지 않고, 그 객체에 대한 참조도 보관 유지합니다만, 복제 또는 카피에 대한 참조를 보관 유지하는 일이 있습니다. 이 메소드가 돌려주는 객체는 호출해 옆이 소유합니다. 구현은 계속되어 이것을 변경하지 않습니다. 구현에는, 호출측이 소유하는 것과 같은 새로운 Attributes 객체인가, 혹은 원의 inAttrs 파라미터에의 참조가 포함됩니다.

파라미터:
obj - 상태를 취득하는, null 의 가능성이 있는 객체
name - nameCtx 에 관련하는 이 객체의 이름. 또는, 이름을 지정하지 않는 경우는 null
nameCtx - name 파라미터의 지정에 관련하는 문맥, 또는 name 가 디폴트의 초기 문맥에 관련하는 경우는 null
environment - 객체 상태의 생성에 사용되는, null 의 가능성이 있는 환경
inAttrs - 객체에 바인드 되는, null 의 가능성이 있는 속성. 팩토리는 inAttrs 를 변경할 수 없다
반환값:
객체의 바인딩 상태 및 바인드 되는 해당의 속성을 포함한 Result 객체가 이 팩토리를 사용하지 않는 경우는 null
예외:
NamingException - 객체 상태를 취득하려고 하고 있을 때 이 팩토리가 예외를 검출해, 다른 팩토리가 시행되지 않는 경우
관련 항목:
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 도 참조해 주세요.