public interface DirObjectFactory extends ObjectFactory
JNDI框架允许对象的实现是通过在动态加载对象工厂。看到ObjectFactory详情。
一个DirObjectFactory延伸ObjectFactory通过允许Attributes实例被提供给getObjectInstance()方法。DirObjectFactory实现打算通过DirContext服务提供商使用。服务提供程序,除了从目录中读取一个对象之外,还可能已经具有用于对象工厂检查的属性,以检查工厂是否应该处理对象。例如,一个LDAP风格服务提供商可能读到“类”的对象。CORBA对象工厂可能只在LDAP条目感兴趣”corbaobject objectClass =“。利用LDAP服务提供商提供的属性,CORBA对象的工厂可以快速消除不需要担心的对象,而非CORBA对象的工厂可以快速消除CORBA相关的LDAP条目。
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 | Method and Description |
---|---|
Object |
getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
使用所指定的位置或参考信息和属性创建一个对象。
|
getObjectInstance
Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws 异常
这个对象的特殊要求提供使用environment
。这样的环境属性的一个例子是用户身份信息。
DirectoryManager.getObjectInstance()先后负载对象工厂。如果遇到一个DirObjectFactory,它将调用DirObjectFactory.getObjectInstance();否则,它调用ObjectFactory.getObjectInstance()。它这样做,直到一个工厂产生一个非空的答案。
当一个异常被抛出的异常对象工厂,是通过对DirectoryManager.getObjectInstance()来电。寻找可能产生非零的答案的其他工厂被停止。一个对象工厂应该只抛出一个例外,如果它是肯定的,它是唯一的工厂,没有其他对象的工厂应该尝试。如果这个工厂不能使用提供的参数创建一个对象,则该对象将返回空值。
因为DirObjectFactory延伸ObjectFactory,它实际上有两getObjectInstance()方法,其中一个不同于其他的属性参数。给一个工厂,实现了DirObjectFactory,DirectoryManager.getObjectInstance()将只使用接受属性参数的方法,而NamingManager.getObjectInstance()将只使用一个不接受参数的属性。
看到一个描述URL上下文工厂和对象工厂,同样适用于其他性质的ObjectFactory DirObjectFactory。
的name,attrs,和environment参数是由调用方拥有。该实现将不会修改这些对象或保持引用它们,虽然它可能会保留对克隆或副本的引用。
obj
-可能的空对象包含位置或参考信息,可用于创建对象。
name
-此对象的名称相对
nameCtx
,或null,如果没有指定名称。
nameCtx
的上下文相关的
name
参数指定,或null如果
name
相对于默认初始上下文。
environment
-这是用于创建对象可能的空环境。
attrs
含有一些
obj属性可能的空属性。
attrs未必都
obj属性。如果对象的工厂需要更多的属性,它需要得到它,要么用
obj,或
name和
nameCtx工厂不能修改属性。
异常
-如果这对象工厂在试图创建一个对象时遇到了一个例外,并没有其他的对象工厂进行。
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<?, ?>)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.