Module  java.naming
软件包  javax.naming.spi

Class DirectoryManager



  • public class DirectoryManager
    extends NamingManager
    此类包含支持DirContext实现的方法。

    这个类是NamingManager的扩展名。 它包含服务提供商用于访问对象工厂和状态工厂以及获取支持联合的连续上下文的方法。

    DirectoryManager对多个线程的并发访问是安全的。

    除非另有说明,一个NameAttributes传递给任何方法或环境参数由调用者所有。 实现不会修改对象或保留对它的引用,尽管它可以保留对克隆或副本的引用。

    从以下版本开始:
    1.3
    另请参见:
    DirObjectFactoryDirStateFactory
    • 方法详细信息

      • getObjectInstance

        public static Object getObjectInstance​(Object refInfo,
                                               Name name,
                                               Context nameCtx,
                                               Hashtable<?,?> environment,
                                               Attributes attrs)
                                        throws 异常
        为指定的对象,属性和环境创建一个对象的实例。

        此方法与NamingManager.getObjectInstance相同,但有以下差异:

        • 它接受一个包含与对象关联的属性的Attributes参数。 DirObjectFactory可能会使用这些属性来保存从目录中查找它们。
        • 对象工厂的尝试必须实现ObjectFactoryDirObjectFactory 如果实现DirObjectFactory ,则使用DirObjectFactory.getObjectInstance() ,否则使用ObjectFactory.getObjectInstance()
        实现DirContext接口的服务提供商应该使用这种方法,而不是NamingManager.getObjectInstance()
        参数
        refInfo - 可以为其创建对象的空对象。
        name - 此对象的名称相对于nameCtx 指定名称是可选的; 如果省略,则name应为null。
        nameCtx - 指定name参数的上下文。 如果为null,则name是相对于默认的初始上下文。
        environment - 用于创建对象工厂和对象的可能的空环境。
        attrs - 与refInfo相关联的可能的空属性。 这可能不是refInfo的完整属性集; 您可能可以从目录中读取更多属性。
        结果
        使用refInfoattrs创建的对象; 或者如果对象不能由工厂创建, refInfo
        异常
        NamingException - 如果在尝试获取URL上下文时遇到命名异常,或者如果其中一个工厂引发了NamingException。
        异常 - 如果其中一个访问的工厂引发异常,或者在加载和实例化工厂和对象类时遇到错误。 如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。 DirObjectFactory.getObjectInstance()
        从以下版本开始:
        1.3
        另请参见:
        NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)DirObjectFactoryDirObjectFactory.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。
        • 国家工厂尝试必须每个实施StateFactoryDirStateFactory 如果实现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
        另请参见:
        DirStateFactoryDirStateFactory.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<?, ?>)