|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface DirStateFactory
이 인터페이스는, 객체와 해당 속성과의 바인딩 상태를 취득하는 팩토리를 나타냅니다.
JNDI 시스템에서는,객체 팩토리를 사용해 객체 구현을 동적으로 로드할 수 있습니다.
DirStateFactory 는 StateFactory 를 확장해,getStateToBind() 메소드가 Attributes 인스턴스를 지정해 돌려줄 수가 있도록(듯이) 합니다. DirStateFactory 구현은 DirContext 서비스 프로바이더가 사용하는 것입니다. 호출측이 DirContext.bind() 를 사용해 객체를 바인드 할 때, 속성세트도 그 객체에 바인드 되도록(듯이) 지정할 수 있습니다. 바인드 되는 객체와 속성은, 팩토리의 getStateToBind() 메소드에게 건네집니다. 팩토리는, 객체와 속성을 처리하는 경우는 바인드 되는 객체와 속성의 해당 페어를 돌려줍니다. 객체를 처리하지 않는 경우, 팩토리는 null 를 돌려줄 필요가 있습니다.
예를 들어, 호출측이 프린터 객체를 프린터 관련의 속성과 바인드 하는 일이 있습니다.
ctx 의 LDAP 서비스 프로바이더는 (DirectoryManager.getStateToBind() 를 사용해 간접적으로) DirStateFactory 를 사용해,DirStateFactory 에 printer 및 printerAttrs 를 지정합니다. LDAP 디렉토리의 팩토리는 printer 를 속성세트로 바꾸어 그것을 printerAttrs 와 머지 합니다. 계속되어 서비스 프로바이더가 그 속성을 사용해 LDAP 엔트리를 생성해, 디렉토리를 갱신합니다.ctx.rebind("inky", printer, printerAttrs);
DirStateFactory 는 StateFactory 를 확장하므로, 2 개의 getStateToBind() 메소드를 가집니다. 이 2 개의 메소드는 속성 인수가 다릅니다. DirectoryManager.getStateToBind() 는 속성 인수를 받아들이는 형식만을 사용해,NamingManager.getStateToBind() 는 속성 인수를 받아들이지 않는 형식만을 사용합니다.
DirStateFactory 의 getStateToBind() 메소드의 어느 쪽인가의 형식이, 다른 파라미터를 사용해 여러 차례 불려 가는 일이 있습니다. 구현은 thread 세이프입니다.
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 |
메소드의 상세 |
---|
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
에 관련하는 이 객체의 이름.
또는, 이름을 지정하지 않는 경우는 nullnameCtx
- name
파라미터의 지정에 관련하는 문맥,
또는 name
가 디폴트의 초기 문맥에
관련하는 경우는 nullenvironment
- 객체 상태의 생성에
사용되는, null 의 가능성이 있는 환경inAttrs
- 객체에 바인드 되는, null 의 가능성이 있는 속성.
팩토리는 inAttrs 를 변경할 수 없다
NamingException
- 객체 상태를 취득하려고 하고 있을 때
이 팩토리가 예외를 검출해, 다른 팩토리가
시행되지 않는 경우DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, ? >, javax.naming.directory.Attributes)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.