-
- All Superinterfaces:
-
ObjectFactory
public interface DirObjectFactory extends ObjectFactory
该接口代表一个用于创建给定对象的对象的工厂,以及关于该对象的属性。JNDI框架允许通过对象工厂动态加载对象实现。 详见
ObjectFactory
。A
DirObjectFactory
通过允许向getObjectInstance()
方法提供Attributes
实例来扩展ObjectFactory
。DirObjectFactory
实现旨在由DirContext
服务提供商使用。 服务提供商除了从目录中读取一个对象之外,可能已经具有对象工厂检查工厂是否应该处理该对象的属性。 例如,LDAP样式的服务提供者可能已经读取了该对象的“objectclass”。 CORBA对象工厂可能只对具有“objectclass = corbaObject”的LDAP条目感兴趣。 通过使用LDAP服务提供商提供的属性,CORBA对象工厂可以快速消除不必担心的对象,非CORBA对象工厂可以快速消除与CORBA相关的LDAP条目。- 从以下版本开始:
- 1.3
- 另请参见:
-
NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
,DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
,ObjectFactory
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 Object
getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
使用位置或参考信息和指定的属性创建对象。-
Methods inherited from interface javax.naming.spi.ObjectFactory
getObjectInstance
-
-
-
-
方法详细信息
-
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
。该
name
,attrs
,并environment
参数由调用者所有。 尽管它可能会保留对克隆或副本的引用,但实现不会修改这些对象或保留对它们的引用。- 参数
-
obj
- 可能包含可用于创建对象的位置或参考信息的空对象。 -
name
- 此对象相对于nameCtx
的名称,如果未指定名称,则为null。 -
nameCtx
- 指定name
参数的上下文,如果name
相对于默认初始上下文,name
null。 -
environment
- 用于创建对象的可能的空环境。 -
attrs
- 包含某些obj
属性的可能的空属性。attrs
可能不一定具有obj
的全部属性。 如果对象工厂需要更多属性,则需要使用obj
或name
和nameCtx
。 工厂不得修改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<?, ?>)
-
-