java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

javax.naming.ldap
类 ControlFactory

java.lang.Object
  继承者 javax.naming.ldap.ControlFactory

public abstract class ControlFactory
extends Object

此抽象类表示用于创建 LDAPv3 控件的工厂。LDAPv3 控件是在 RFC 2251 中定义的。

当服务提供程序收到响应控件时,它使用控件工厂返回特定/适当的控件类实现。

从以下版本开始:
1.3
另请参见:
Control

构造方法摘要
protected ControlFactory()
           
 
方法摘要
abstract  Control getControlInstance(Control ctl)
          使用此控件工厂创建控件。
static Control getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env)
          使用已知控件工厂创建控件。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

ControlFactory

protected ControlFactory()
方法详细信息

getControlInstance

public abstract Control getControlInstance(Control ctl)
                                    throws NamingException
使用此控件工厂创建控件。

服务提供程序使用工厂以专用控件类的形式返回从 LDAP 协议读取的控件。不使用此机制,提供程序将返回仅包含 BER 编码格式的数据的控件。

通常,ctl 是包含 BER 编码数据的“基本”控件。通常通过解码 BER 编码数据使用工厂创建专门的控件实现,该实现提供一些方法以类型安全的、友好的方式来访问该数据。

例如,工厂可能使用基本控件中的 BER 编码数据并返回 VirtualListReplyControl 的实例。

如果此工厂不能使用提供的参数创建控件,则其应该返回 null。工厂只有在可以确定它是惟一需要的工厂并且不应该再尝试其他控件工厂时才抛出异常。例如,在控件中的 BER 数据不匹配给定 OID 的控件所期望的数据时,会发生这种情况。此方法抛出 NamingException,因此应该传播的所有其他内部生成的异常都必须被包装在 NamingException 中。

参数:
ctl - 非 null 控件。
返回:
一个控件(可能为 null)。
抛出:
NamingException - 如果 ctl 包含无效数据,这些无效数据阻止它用于创建控件。工厂只有在已知生成控件(由 OID 标识)的方式但由于某些原因(例如,BER 数据无效)不能生成控件时才抛出异常。

getControlInstance

public static Control getControlInstance(Control ctl,
                                         Context ctx,
                                         Hashtable<?,?> env)
                                  throws NamingException
使用已知控件工厂创建控件。

使用以下规则创建控件:

  • 使用环境的 LdapContext.CONTROL_FACTORIES 属性和与 ctx 关联的提供程序资源文件的 LdapContext.CONTROL_FACTORIES 属性中指定的控件工厂,并使用原来的顺序。此属性的值是按顺序尝试的以冒号分隔的工厂类名称列表,使用的名称是第一个成功创建控件的名称。如果无法加载任何工厂,则返回 ctl。如果在创建控件时遇到异常,则将异常传递到调用方。

注意,控件工厂必须是公共的,并且必须具有不接受任何参数的公共构造方法。

参数:
ctl - 包含 OID 和 BER 数据的非 null 控件对象。
ctx - 将创建控件的上下文(可能为 null)。如果为 null,则所有这些信息都不可用。
env - 上下文的环境(可能为 null)。此值用于查找 LdapContext.CONTROL_FACTORIES 属性的值。
返回:
使用 ctl 创建的控件对象;如果使用上述算法无法创建控件对象,则返回 ctl
抛出:
NamingException - 如果在尝试创建控件对象时遇到了命名异常。如果访问的工厂之一抛出异常,则该异常将被传播到调用方。如果在加载和实例化工厂和对象类时遇到错误,则异常将被包装在 NamingException 中,然后重新抛出。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策