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

Interface DirObjectFactory

    • 方法详细信息

      • getObjectInstance

        Object getObjectInstance​(Object obj,
                                 Name name,
                                 Context nameCtx,
                                 Hashtable<?,?> environment,
                                 Attributes attrs)
                          throws 异常
        使用位置或参考信息和指定的属性创建对象。

        该对象的特殊要求是使用environment提供的。 这样的环境属性的示例是用户身份信息。

        DirectoryManager.getObjectInstance()连续加载对象工厂。 如果遇到一个DirObjectFactory ,它将调用DirObjectFactory.getObjectInstance() ; 否则,它调用ObjectFactory.getObjectInstance() 这样做直到工厂产生非空答案。

        当对象工厂引发异常时,异常传递给DirectoryManager.getObjectInstance()的调用者。 搜索可能产生非空答案的其他工厂停止。 如果对象工厂确定它是唯一的预定工厂,并且没有其他对象工厂应该被尝试,那么对象工厂应该只抛出异常。 如果此工厂无法使用提供的参数创建对象,则应返回null。

        由于DirObjectFactory扩展了ObjectFactory ,它实际上有两个getObjectInstance()方法,其中一个不同于attribute参数。 给出一个实现DirObjectFactory的工厂, DirectoryManager.getObjectInstance()将只使用接受属性参数的方法,而NamingManager.getObjectInstance()将只使用不接受attributes参数的方法。

        请参阅ObjectFactory ,了解对象工厂的URL上下文工厂和其他属性,这些属性同样适用于DirObjectFactory

        nameattrs ,并environment参数由调用者所有。 尽管它可能会保留对克隆或副本的引用,但实现不会修改这些对象或保留对它们的引用。

        参数
        obj - 可能包含可用于创建对象的位置或参考信息的空对象。
        name - 此对象相对于 nameCtx的名称,如果未指定名称,则为null。
        nameCtx - 指定 name参数的上下文,如果 name相对于默认初始上下文, name null。
        environment - 用于创建对象的可能的空环境。
        attrs - 包含某些obj属性的可能的空属性。 attrs可能不一定具有obj的全部属性。 如果对象工厂需要更多属性,则需要使用objnamenameCtx 工厂不得修改attrs。
        结果
        创建对象 如果无法创建对象,则为null。
        异常
        异常 - 如果此对象工厂在尝试创建对象时遇到异常,并且不会尝试其他对象工厂。
        另请参见:
        DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)