Class DirectoryManager
Class DirectoryManager
public class DirectoryManager
extends NamingManager
이 클래스는 DirContext 구현을 지원하기 위한 메서드를 담고 있어요. 이 클래스는 NamingManager의 확장이에요. 객체 팩토리와 상태 팩토리에 접근하고, 연합(federation)을 지원하기 위한 연속 컨텍스트(continuation context)를 얻기 위해 서비스 공급자가 사용하는 메서드를 담고 있어요. DirectoryManager는 여러 스레드의 동시 접근에 안전해요. 달리 명시되지 않는 한, 어떤 메서드에 전달되는 Name, Attributes 또는 환경 매개변수는 호출자가 소유해요. 구현은 그 객체를 수정하거나 참조를 유지하지 않지만, 클론이나 복사본에 대한 참조를 유지할 수 있어요.
getContinuationDirContext
public static DirContext getContinuationDirContext(CannotProceedException cpe)
throws NamingException
DirContext 연산을 계속할 컨텍스트를 만들어요. NamingManager.getContinuationContext()와 똑같이 동작하고, 반환되는 연속 컨텍스트가 DirContext라는 점만 달라요.
- Parameters: cpe - 이 연속(continuation)을 촉발한, null이 아닌 예외
- Returns: 연산을 계속하기 위한, null이 아닌
DirContext객체 - Throws: NamingException - 네이밍 예외가 발생했을 때
- See Also: NamingManager.getContinuationContext(CannotProceedException)
getObjectInstance
public static Object getObjectInstance(Object refInfo,
Name name,
Context nameCtx,
Hashtable<?,?> environment,
Attributes attrs)
throws Exception
지정된 객체, 속성, 환경에 대한 객체의 인스턴스를 만들어요. 이 메서드는 NamingManager.getObjectInstance와 다음 차이점을 제외하고 같아요:
- 객체와 연관된 속성을 담은
Attributes매개변수를 받아들여요.DirObjectFactory가 디렉터리에서 조회하는 수고를 줄이기 위해 이 속성을 사용할 수 있어요. - 시도되는 객체 팩토리는
ObjectFactory또는DirObjectFactory중 하나를 구현해야 해요.DirObjectFactory를 구현하면DirObjectFactory.getObjectInstance()가 사용되고, 그렇지 않으면ObjectFactory.getObjectInstance()가 사용돼요.
DirContext 인터페이스를 구현하는 서비스 공급자는 NamingManager.getObjectInstance()가 아니라 이 메서드를 사용해야 해요.
- Parameters: refInfo - 객체를 만들, null일 수 있는 객체
- Returns: refInfo와 attrs를 사용해 만든 객체; 팩토리가 객체를 만들 수 없으면 refInfo
- Throws: NamingException - URL 컨텍스트를 얻으려는 동안 네이밍 예외가 발생했거나, 접근한 팩토리 중 하나가
NamingException을 던졌을 때 - Since: 1.3
- See Also: NamingManager.getURLContext(java.lang.String, java.util.Hashtable, ?>), DirObjectFactory, DirObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, ?>, javax.naming.directory.Attributes)
getStateToBind
public static DirStateFactory.Result getStateToBind(Object obj,
Name name,
Context nameCtx,
Hashtable<?,?> environment,
Attributes attrs)
throws NamingException
원래 객체와 그 속성이 주어졌을 때 바인딩할 객체의 상태를 가져와요. 이 메서드는 NamingManager.getStateToBind와 다음 차이점을 제외하고 비슷해요:
DirContext.bind()메서드에 전달된 속성을 담은Attributes매개변수를 받아들여요.- 바인딩할 객체와 바인딩에 동반할 속성을 담은, null이 아닌
DirStateFactory.Result인스턴스를 반환해요. 객체나 속성 중 하나는 null일 수 있어요. - 시도되는 상태 팩토리는 각각
StateFactory또는DirStateFactory중 하나를 구현해야 해요.DirStateFactory를 구현하면DirStateFactory.getStateToBind()가 호출되고, 그렇지 않으면StateFactory.getStateToBind()가 호출돼요.
DirContext 인터페이스를 구현하는 서비스 공급자는 NamingManager.getStateToBind()가 아니라 이 메서드를 사용해야 해요. 시도할 상태 팩토리 목록이 어떻게 결정되는지에 대한 설명은 NamingManager.getStateToBind()를 참조하세요. 이 메서드가 반환하는 객체는 호출자가 소유해요. 구현은 이후에 수정하지 않아요. 그것은 마찬가지로 호출자가 소유하는 새 Attributes 객체 또는 원래 attrs 매개변수에 대한 참조를 포함할 거예요.
- Parameters: obj - 바인딩할 상태를 가져올, null이 아닌 객체
- Returns: 바인딩할 객체와 속성을 담은, null이 아닌
DirStateFactory.Result. 어떤 상태 팩토리도 null이 아닌 답을 반환하지 않으면 결과는 원래 속성을 가진 객체(obj) 자체를 담을 거예요 - Throws: NamingException - 팩토리를 사용하는 동안 네이밍 예외가 발생했을 때. 팩토리는 객체를 만들려고 다른 팩토리를 사용하고 싶지 않을 때만 예외를 던져야 해요.
DirStateFactory.getStateToBind()참조 - Since: 1.3
- See Also: DirStateFactory, DirStateFactory.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, ?>, javax.naming.directory.Attributes), NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable, ?>)