mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-06 00:32:44 +08:00
182 lines
12 KiB
HTML
182 lines
12 KiB
HTML
<div class="header">
|
||
<div class="subTitle">
|
||
compact3
|
||
</div>
|
||
<div class="subTitle">
|
||
javax.naming.spi
|
||
</div>
|
||
<h2 class="title" title="Interface DirStateFactory">Interface DirStateFactory</h2>
|
||
</div><div class="contentContainer">
|
||
<div class="description">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<dl>
|
||
<dt>
|
||
All Superinterfaces:
|
||
</dt>
|
||
<dd>
|
||
<span><a href="../../../javax/naming/spi/StateFactory.html" title="javax.naming.spi中的接口">StateFactory</a></span>
|
||
</dd>
|
||
</dl>
|
||
<hr/> <br/> <pre>public interface <span class="typeNameLabel">DirStateFactory</span>
|
||
extends <a href="../../../javax/naming/spi/StateFactory.html" title="interface in javax.naming.spi">StateFactory</a></pre>
|
||
<div class="block">
|
||
<span>该接口表示用于获取对象的状态的工厂和用于绑定的相应属性。</span>
|
||
<p> <span>JNDI框架允许通过<tt>object factories动态</tt>加载对象<tt>实现</tt> 。</span> </p>
|
||
<p> <span>A <tt>DirStateFactory</tt>扩展了<tt>StateFactory</tt> ,允许<tt>Attributes</tt>实例提供给<tt>getStateToBind()</tt>方法返回。</span> <span><tt>DirStateFactory</tt>实现旨在由<tt>DirContext</tt>服务提供商使用。</span> <span>当调用者使用<tt>DirContext.bind()</tt>绑定对象时,他也可以指定要与对象绑定的一组属性。</span> <span>要绑定的对象和属性被传递给工厂的<tt>getStateToBind()</tt>方法。</span> <span>如果工厂处理对象和属性,则返回一对相应的对象和属性对象。</span> <span>如果工厂没有处理对象,它必须返回null。</span> </p>
|
||
<p> <span>例如,调用者可能会将打印机对象与某些与打印机相关的属性进行绑定。</span> </p>
|
||
<blockquote>
|
||
<span><pre>
|
||
ctx.rebind("inky", printer, printerAttrs);
|
||
</pre></span>
|
||
</blockquote>
|
||
<span><tt>ctx</tt>的LDAP服务提供商使用<tt>DirStateFactory</tt> (间接通过<tt>DirectoryManager.getStateToBind()</tt> ),并给它<tt>printer</tt>和<tt>printerAttrs</tt> 。</span>
|
||
<span>LDAP目录的工厂可能<tt>会将printer</tt>转换为一组属性,并将其与<tt>printerAttrs进行</tt>合并。</span>
|
||
<span>然后,服务提供商使用生成的属性来创建LDAP条目并更新目录。</span>
|
||
<p> <span>由于<tt>DirStateFactory</tt>扩展了<tt>StateFactory</tt> ,它有两个<tt>getStateToBind()</tt>方法,其中一个不同于attribute参数。</span> <span><tt>DirectoryManager.getStateToBind()</tt>将只使用接受attributes参数的表单,而<tt>NamingManager.getStateToBind()</tt>将只使用不接受attributes参数的表单。</span> </p>
|
||
<p> <span>可以多次调用DirStateFactory的<tt>getStateToBind()</tt>方法的任一形式,可能使用不同的参数。</span> <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/spi/DirectoryManager.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-"><code>DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)</code></a> , <a href="../../../javax/naming/spi/DirObjectFactory.html" title="javax.naming.spi中的接口"><code>DirObjectFactory</code></a></span>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="summary">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="nested.class.summary">
|
||
<!-- --> </a> <h3>Nested Class Summary</h3>
|
||
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Nested Class Summary table, listing nested classes, and an explanation">
|
||
<caption>
|
||
<span>Nested Classes</span>
|
||
<span class="tabEnd"> </span>
|
||
</caption>
|
||
<tbody>
|
||
<tr>
|
||
<th class="colFirst" scope="col">Modifier and Type</th>
|
||
<th class="colLast" scope="col">Interface and Description</th>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><code>static class </code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/DirStateFactory.Result.html" title="class in javax.naming.spi">DirStateFactory.Result</a></span></code>
|
||
<div class="block">
|
||
用于返回DirStateFactory.getStateToBind()的结果的对象/属性对。
|
||
</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="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>
|
||
</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><a href="../../../javax/naming/spi/DirStateFactory.Result.html" title="class in javax.naming.spi">DirStateFactory.Result</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/DirStateFactory.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-">getStateToBind</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj, <a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name, <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx, <a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a><?,?> environment, <a href="../../../javax/naming/directory/Attributes.html" title="interface in javax.naming.directory">Attributes</a> inAttrs)</code>
|
||
<div class="block">
|
||
在给定要转换的对象和属性的情况下,检索绑定对象的状态。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="methods.inherited.from.class.javax.naming.spi.StateFactory">
|
||
<!-- --> </a> <h3>Methods inherited from interface javax.naming.spi.<a href="../../../javax/naming/spi/StateFactory.html" title="interface in javax.naming.spi">StateFactory</a></h3> <code><a href="../../../javax/naming/spi/StateFactory.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-">getStateToBind</a></code></li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="details">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ============ METHOD DETAIL ========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.detail">
|
||
<!-- --> </a> <h3>方法详细信息</h3> <a name="getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>getStateToBind</h4> <pre><a href="../../../javax/naming/spi/DirStateFactory.Result.html" title="class in javax.naming.spi">DirStateFactory.Result</a> getStateToBind(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj,
|
||
<a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name,
|
||
<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx,
|
||
<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a><?,?> environment,
|
||
<a href="../../../javax/naming/directory/Attributes.html" title="interface in javax.naming.directory">Attributes</a> inAttrs)
|
||
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
|
||
<div class="block">
|
||
<span>在给定要转换的对象和属性的情况下,检索绑定对象的状态。</span>
|
||
<p> <span><tt>DirectoryManager.getStateToBind()</tt>在国家工厂连续装载。</span> <span>如果工厂实行<tt>DirStateFactory</tt> , <tt>则</tt>调用此方法; <tt>DirectoryManager</tt></span> <span>否则,它调用<tt>StateFactory.getStateToBind()</tt> 。</span> <span>这样做直到工厂产生非空答案。</span> </p>
|
||
<p> <span>当工厂抛出异常时,异常传递给<tt>DirectoryManager.getStateToBind()</tt>的调用者。</span> <span>搜索可能产生非空答案的其他工厂停止。</span> <span>如果确定它是唯一的预定工厂,并且没有其他工厂应该被尝试,工厂只应该抛出异常。</span> <span>如果此工厂无法使用提供的参数创建对象,则应返回null。</span> </p>
|
||
<p> <span>可以可选地使用<code>name</code>和<code>nameCtx</code>参数来指定正在创建的对象的名称。</span> <span>见“名称和上下文参数”的描述<a href="../../../javax/naming/spi/ObjectFactory.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>ObjectFactory.getObjectInstance()</code></a>了解详情。</span> <span>如果工厂使用<code>nameCtx</code>它应该将其使用与并发访问同步,因为上下文实现不能保证是线程安全的。</span> </p>
|
||
<p> <span>该<tt><tt>name,inAttrs</tt></tt>和<tt>environment</tt>参数由调用者所有。</span> <span>尽管它可能会保留对克隆或副本的引用,但实现不会修改这些对象或保留对它们的引用。</span> <span>该方法返回的对象由调用者拥有。</span> <span>实施不会随后修改。</span> <span>它将包含同样由调用者拥有的新的<tt>Attributes</tt>对象或对原始<tt>inAttrs</tt>参数的引用。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>obj</code> - 要检索其状态的可能为空的对象。
|
||
</dd>
|
||
<dd>
|
||
<code>name</code> - 相对于
|
||
<code>nameCtx</code>的此对象的名称,如果未指定名称,则为null。
|
||
</dd>
|
||
<dd>
|
||
<code>nameCtx</code> - 指定
|
||
<code>name</code>参数的上下文,如果
|
||
<code>name</code>相对于默认初始上下文,则为null。
|
||
</dd>
|
||
<dd>
|
||
<code>environment</code> - 用于创建对象状态的可能的空环境。
|
||
</dd>
|
||
<dd>
|
||
<span><code>inAttrs</code> - 要与对象绑定的可能的空属性。</span>
|
||
<span>工厂不得修改<tt>inAttrs</tt> 。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span>将含有该对象的结合状态<tt>Result</tt>和相应的属性的约束;</span>
|
||
<span>如果对象不使用此工厂,则为null。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果此工厂在尝试获取对象的状态时遇到异常,并且不会尝试其他工厂。
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../javax/naming/spi/DirectoryManager.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-"><code>DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)</code></a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
</div> |