-
- All Superinterfaces:
-
ObjectFactory
public interface DirObjectFactory extends ObjectFactory
此接口表示一个工厂,用于在给定对象和对象属性的情况下创建对象。JNDI框架允许通过对象工厂动态加载对象实现。 有关详细信息,请参阅
ObjectFactory
。甲
DirObjectFactory
延伸ObjectFactory
通过使Attributes
实例被提供给getObjectInstance()
方法。DirObjectFactory
实现旨在由DirContext
服务提供商使用。 除了从目录中读取对象之外,服务提供者可能已经具有对对象工厂有用的属性,以检查工厂是否应该处理该对象。 例如,LDAP样式的服务提供者可能已经读取了对象的“对象类”。 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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Object
getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
使用位置或引用信息以及指定的属性创建对象。-
声明方法的接口 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()
方法,其中一个方法与attributes参数不同。 给定一个实现DirObjectFactory
的工厂,DirectoryManager.getObjectInstance()
将仅使用接受attributes参数的方法,而NamingManager.getObjectInstance()
将仅使用不接受attributes参数的方法。有关描述URL上下文工厂和对等工厂的其他属性,请参阅
ObjectFactory
,这些属性同样适用于DirObjectFactory
。该
name
,attrs
和environment
参数由调用者所有。 实现不会修改这些对象或保留对它们的引用,尽管它可能会保留对克隆或副本的引用。- 参数
-
obj
- 包含可用于创建对象的位置或引用信息的可能为null的对象。 -
name
- 此对象相对于nameCtx
的名称,如果未指定名称,则为null。 -
nameCtx
- 指定name
参数的上下文,如果name
相对于默认初始上下文,name
null。 -
environment
- 用于创建对象的可能为null的环境。 -
attrs
- 包含obj
属性的可能为null的属性。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<?, ?>)
-
-