JavaTM 2 Platform
Standard Ed. 6

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
使用已知控制元件處理器創建控制元件。

使用以下規則創建控制元件:

注意,控制元件處理器必須是公共的,並且必須具有不接受任何參數的公共建構子。

參數:
ctl - 套件含 OID 和 BER 資料的非 null 控制元件物件。
ctx - 將創建控制元件的上下文(可能為 null)。如果為 null,則所有這些資訊都不可用。
env - 上下文的環境(可能為 null)。此值用於尋找 LdapContext.CONTROL_FACTORIES 屬性的值。
返回:
使用 ctl 創建的控制元件物件;如果使用上述演算法無法創建控制元件物件,則返回 ctl
拋出:
NamingException - 如果在嘗試創建控制元件物件時遇到了命名異常。如果存取的處理器之一拋出異常,則該異常將被傳播到調用者。如果在載入和實例化處理器和物件類別時遇到錯誤,則異常將被包裹在 NamingException 中,然後重新拋出。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only