- java.lang.Object
-
- javax.naming.spi.NamingManager
-
- javax.naming.spi.DirectoryManager
-
public class DirectoryManager extends NamingManager
此类包含支持DirContext
实现的方法。这个类是
NamingManager
的扩展名。 它包含服务提供商用于访问对象工厂和状态工厂以及获取支持联合的连续上下文的方法。DirectoryManager
对多个线程的并发访问是安全的。除非另有说明,一个
Name
,Attributes
传递给任何方法或环境参数由调用者所有。 实现不会修改对象或保留对它的引用,尽管它可以保留对克隆或副本的引用。- 从以下版本开始:
- 1.3
- 另请参见:
-
DirObjectFactory
,DirStateFactory
-
-
Field Summary
-
Fields inherited from class javax.naming.spi.NamingManager
CPE
-
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static DirContext
getContinuationDirContext(CannotProceedException cpe)
创建一个上下文,继续操作DirContext
。static Object
getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
为指定的对象,属性和环境创建一个对象的实例。static DirStateFactory.Result
getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
当给定原始对象及其属性时,检索绑定对象的状态。-
Methods inherited from class javax.naming.spi.NamingManager
getContinuationContext, getInitialContext, getObjectInstance, getStateToBind, getURLContext, hasInitialContextFactoryBuilder, setInitialContextFactoryBuilder, setObjectFactoryBuilder
-
-
-
-
方法详细信息
-
getContinuationDirContext
public static DirContext getContinuationDirContext(CannotProceedException cpe) throws NamingException
创建一个上下文以继续DirContext
操作。 操作就像NamingManager.getContinuationContext()
,只有返回的连续上下文是一个DirContext
。- 参数
-
cpe
- 触发此延续的非空异常。 - 结果
-
用于继续操作的非空
DirContext
对象。 - 异常
-
NamingException
- 如果发生命名异常。 - 另请参见:
-
NamingManager.getContinuationContext(CannotProceedException)
-
getObjectInstance
public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws 异常
为指定的对象,属性和环境创建一个对象的实例。此方法与
NamingManager.getObjectInstance
相同,但有以下差异:- 它接受一个包含与对象关联的属性的
Attributes
参数。DirObjectFactory
可能会使用这些属性来保存从目录中查找它们。 - 对象工厂的尝试必须实现
ObjectFactory
或DirObjectFactory
。 如果实现DirObjectFactory
,则使用DirObjectFactory.getObjectInstance()
,否则使用ObjectFactory.getObjectInstance()
。
DirContext
接口的服务提供商应该使用这种方法,而不是NamingManager.getObjectInstance()
。- 参数
-
refInfo
- 可以为其创建对象的空对象。 -
name
- 此对象的名称相对于nameCtx
。 指定名称是可选的; 如果省略,则name
应为null。 -
nameCtx
- 指定name
参数的上下文。 如果为null,则name
是相对于默认的初始上下文。 -
environment
- 用于创建对象工厂和对象的可能的空环境。 -
attrs
- 与refInfo相关联的可能的空属性。 这可能不是refInfo的完整属性集; 您可能可以从目录中读取更多属性。 - 结果
-
使用
refInfo
和attrs
创建的对象; 或者如果对象不能由工厂创建,refInfo
。 - 异常
-
NamingException
- 如果在尝试获取URL上下文时遇到命名异常,或者如果其中一个工厂引发了NamingException。 -
异常
- 如果其中一个访问的工厂引发异常,或者在加载和实例化工厂和对象类时遇到错误。 如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。 见DirObjectFactory.getObjectInstance()
。 - 从以下版本开始:
- 1.3
- 另请参见:
-
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
除了以下差异:- 它接受一个
Attributes
参数,其中包含传递给DirContext.bind()
方法的属性。 - 它返回一个非空的
DirStateFactory.Result
实例,其中包含要绑定的对象,以及伴随绑定的属性。 对象或属性可能为null。 - 国家工厂尝试必须每个实施
StateFactory
或DirStateFactory
。 如果实现DirStateFactory
,则DirStateFactory.getStateToBind()
; 否则,StateFactory.getStateToBind()
。
DirContext
接口的服务提供商应该使用这种方法,而不是NamingManager.getStateToBind()
。有关如何确定要尝试的状态工厂列表的说明,请参阅NamingManager.getStateToBind()。
该方法返回的对象由调用者拥有。 实施不会随后修改。 它将包含同样由调用者拥有的新的
Attributes
对象,或引用原始的attrs
参数。- 参数
-
obj
- 要获取状态绑定的非空对象。 -
name
- 此对象相对于nameCtx
的名称,如果未指定名称,则为null。 -
nameCtx
- 指定name
参数的上下文,如果name
相对于默认初始上下文,name
null。 -
environment
- 用于创建状态工厂和对象状态的可能的空环境。 -
attrs
- 可能为null的与对象绑定的属性。 - 结果
-
包含要绑定的对象和属性的非空DirStateFactory.Result。
如果没有状态工厂返回非空答案,结果将包含对象(
obj
)本身具有原始属性。 - 异常
-
NamingException
- 如果在使用工厂时遇到命名异常。 如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。 见DirStateFactory.getStateToBind()
。 - 从以下版本开始:
- 1.3
- 另请参见:
-
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<?, ?>)
- 它接受一个
-
-