uTools-Manuals/docs/java/javax/naming/ldap/ControlFactory.html

212 lines
12 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.naming.ldap
</div>
<h2 class="title" title="Class ControlFactory">Class ControlFactory</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.naming.ldap.ControlFactory</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">ControlFactory</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>这个抽象类代表一个用于创建LDAPv3控件的工厂。</span>
<span>LDAPv3控件在<a href="http://www.ietf.org/rfc/rfc2251.txt">RFC 2251</a>中定义。</span>
<p> <span>当服务提供商收到响应控制时,它使用控制工厂返回特定/适当的控制类实现。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/Control.html" title="javax.naming.ldap中的接口"><code>Control</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/ControlFactory.html#ControlFactory--">ControlFactory</a></span>()</code>
<div class="block">
创建控制工厂的新实例。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t1"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>abstract <a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/ControlFactory.html#getControlInstance-javax.naming.ldap.Control-">getControlInstance</a></span>(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a> ctl)</code>
<div class="block">
使用该控制工厂创建控制。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>static <a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/ControlFactory.html#getControlInstance-javax.naming.ldap.Control-javax.naming.Context-java.util.Hashtable-">getControlInstance</a></span>(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a> ctl, <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> ctx, <a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; env)</code>
<div class="block">
使用已知的控制工厂创建控制。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../java/lang/Object.html#toString--">toString</a>, <a href="../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="ControlFactory--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ControlFactory</h4> <pre>protected ControlFactory()</pre>
<div class="block">
创建控制工厂的新实例。
</div> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getControlInstance-javax.naming.ldap.Control-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getControlInstance</h4> <pre>public abstract <a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a> getControlInstance(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a> ctl)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>使用该控制工厂创建控制。</span>
<p> <span>该工厂由服务提供商用来将其从LDAP协议读取的控件作为专门的控制类返回。</span> <span>没有这种机制提供者将返回仅包含BER编码格式的数据的控件。</span> </p>
<p> <span>通常, <tt>ctl</tt>是包含BER编码数据的“基本”控制。</span> <span>该工厂用于创建专门的控制实现通常通过解码BER编码数据提供以类型安全和友善的方式访问该数据的方法。</span> </p>
<p> <span>例如工厂可能会使用BER编码数据进行基本控制并返回VirtualListReplyControl的一个实例。</span> </p>
<p> <span>如果此工厂无法使用提供的参数创建控件则应返回null。</span> <span>如果确定它是唯一的预定工厂,并且没有其他控制工厂应该被尝试,工厂应该只抛出异常。</span> <span>例如如果控件中的BER数据与给定OID的控件的期望不匹配则可能会发生这种情况。</span> <span>由于此方法抛出<tt>NamingException</tt> ,所以应该<tt>传播的</tt>任何其他内部生成的异常都必须包含在一个<tt>NamingException中</tt></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>ctl</code> - 非空控件。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
可能为空控制。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<span><code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果<tt>ctl</tt>包含无效的数据,阻止它用于创建控件。</span>
<span>如果工厂知道如何产生控制由OID标识但由于例如无效的BER数据而无法出现工厂应该只会抛出异常。</span>
</dd>
</dl> </li>
</ul> <a name="getControlInstance-javax.naming.ldap.Control-javax.naming.Context-java.util.Hashtable-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>getControlInstance</h4> <pre>public static <a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a> getControlInstance(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a> ctl,
<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> ctx,
<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; env)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>使用已知的控制工厂创建控制。</span>
<p> <span>以下规则用于创建控件:</span> </p>
<ul>
<li> <span>使用环境的<tt>LdapContext.CONTROL_FACTORIES</tt>属性指定的控件工厂,并与相关<tt>ctx</tt>供应商资源文件的,按照这个顺序。</span> <span>此属性的值是按冒号分隔的工厂类名称列表,按顺序尝试,成功创建控件的第一个列表是使用的。</span> <span>如果没有工厂可以加载,请返回<code>ctl</code></span> <span>如果在创建控件时遇到异常,则将异常传递给调用者。</span> </li>
</ul>
<p> <span>请注意,控制工厂必须是公共的,并且必须有一个不接受参数的公共构造函数。</span> </p>
<p></p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>ctl</code> - 包含OID和BER数据的非空控制对象。
</dd>
<dd>
<span><code>ctx</code> - 正在创建控件的可能空的上下文。</span>
<span>如果为空,则不提供此类信息。</span>
</dd>
<dd>
<span><code>env</code> - 上下文可能是空的环境。</span>
<span>这是用来查找<tt>LdapContext.CONTROL_FACTORIES</tt>属性的值。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>使用<code>ctl</code>创建的控件对象;</span>
<span><code>ctl</code>如果无法使用上述算法创建控制对象。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<span><code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果尝试创建控件对象时遇到命名异常。</span>
<span>如果其中一个访问的工厂引发异常,则会传播到调用者。</span>
<span>如果在加载和实例化工厂和对象类时遇到错误,则异常包装在<tt>NamingException中</tt> ,然后重新<tt>引导</tt></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>