|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.naming.ldap.ControlFactory
public abstract class ControlFactory
此抽象類別表示用於創建 LDAPv3 控制元件的處理器。LDAPv3 控制元件是在 RFC 2251 中定義的。
當服務提供者收到回應控制元件時,它使用控制元件處理器返回特定/適當的控制元件類別實作。
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 |
建構子詳細資訊 |
---|
protected ControlFactory()
方法詳細資訊 |
---|
public abstract Control getControlInstance(Control ctl) throws NamingException
服務提供者使用處理器以專用控制元件類別的形式返回從 LDAP 協議讀取的控制元件。不使用此機制,提供者將返回僅包含 BER 編碼格式的資料的控制元件。
通常,ctl 是包含 BER 編碼資料的“基本”控制元件。通常通過解碼 BER 編碼資料使用處理器創建專門的控制元件實作,該實作提供一些方法以型別安全的、友好的方式來存取該資料。
例如,處理器可能使用基本控制元件中的 BER 編碼資料並返回 VirtualListReplyControl 的實例。
如果此處理器不能使用提供的參數創建控制元件,則其應該返回 null。處理器只有在可以確定它是唯一需要的處理器並且不應該再嘗試其他控制元件處理器時才拋出異常。例如,在控制元件中的 BER 資料不比對給定 OID 的控制元件所期望的資料時,會發生這種情況。此方法拋出 NamingException,因此應該傳播的所有其他內部產生的異常都必須被包裹在 NamingException 中。
ctl
- 非 null 控制元件。
NamingException
- 如果 ctl 套件含無效資料,這些無效資料阻止它用於創建控制元件。處理器只有在已知產生控制元件(由 OID 標識)的方式但由於某些原因(例如,BER 資料無效)不能產生控制元件時才拋出異常。public static Control getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env) throws NamingException
使用以下規則創建控制元件:
ctl
。如果在創建控制元件時遇到異常,則將異常傳遞到調用者。
注意,控制元件處理器必須是公共的,並且必須具有不接受任何參數的公共建構子。
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。