JavaTM 2 Platform
Standard Ed. 6

javax.naming.ldap
類別 Rdn

java.lang.Object
  繼承者 javax.naming.ldap.Rdn
所有已實作的介面:
Serializable, Comparable<Object>

public class Rdn
extends Object
implements Serializable, Comparable<Object>

此類別表示相對標識名,或 RDN,它是一個 RFC 2253 指定的標識名元件。RDN 的一個範例是 "OU=Sales+CN=J.Smith"。在此範例中,RDN 由多個屬性型別/值對組成。RDN 根據 LdapName 類別描述中的描述進行解析。

Rdn 類別將 RDN 表示為屬性型別/值映射關係,可以使用 Attributes 查看。此外,它還包含一些便捷方法,允許在 Rdn 由單個型別/值對組成(這是該類別的典型使用方式)時對型別和值進行方便地檢索。它還包含一些說明器方法,允許根據 RFC2253 中定義的轉義語法轉義非格式化的屬性值和取消格式化值的轉義。對於採用或返回 Object 形式的屬性值的方法,該值可能為 String(非轉義形式的),也可能為位元組陣列。

Rdn 將恰當地解析所有有效 RDN,但是在解析無效 RDN 時不會嘗試檢測所有可能的錯誤情況。在接受無效 RDN 時,它顯得很“大方”。名稱的“有效性”在將名稱提供給 LDAP 伺服器時最終確定,伺服器將基於名稱的網要資訊和互操作性考慮之類別的因素來決定接受還是拒絕該名稱。

以下範例程式碼展示了如何使用將型別和值用作參數的建構子建構 Rdn:

        Rdn rdn = new Rdn("cn", "Juicy, Fruit");
        System.out.println(rdn.toString());
 
最後一行將列印 cn=Juicy\, FruitunescapeValue() 方法可用於取消在初始值 "Juicy, Fruit" 中所產生的轉義逗號的轉義。escapeValue() 方法在逗號之前添加轉義。

可以通過 RFC 2253 中定義的 RDN 的字元串表示形式實例化此類別,如以下範例程式碼所示:

        Rdn rdn = new Rdn("cn=Juicy\\, Fruit");
        System.out.println(rdn.toString());
 
最後一行將列印 cn=Juicy\, Fruit

Rdn 實例的共時多執行緒只讀存取不必是同步的。

除非另有說明,否則將 null 參數傳遞給此類別中的建構子或方法的行為都會導致拋出 NullPointerException。

從以下版本開始:
1.5
另請參見:
序列化表格

建構子摘要
Rdn(Attributes attrSet)
          根據給定屬性集建構 Rdn。
Rdn(Rdn rdn)
          根據給定 rdn 建構 Rdn。
Rdn(String rdnString)
          根據給定字元串建構 Rdn。
Rdn(String type, Object value)
          根據給定屬性型別和值建構 Rdn。
 
方法摘要
 int compareTo(Object obj)
          比較此 Rdn 與指定 Object 的順序。
 boolean equals(Object obj)
          比較指定 Object 與此 Rdn 的相等性。
static String escapeValue(Object val)
          在給定屬性值的情況下返回根據 RFC 2253 中指定的規則轉義的字元串。
 String getType()
          檢索一個此 Rdn 的型別。
 Object getValue()
          檢索一個此 Rdn 的值。
 int hashCode()
          返回此 RDN 的雜湊碼。
 int size()
          檢索此 Rdn 中的屬性型別/值對的數目。
 Attributes toAttributes()
          檢索此 Rdn 中包含的型別/值映射關係的 Attributes 視圖。
 String toString()
          以字元串形式返回此 Rdn,該字元串使用由 RFC 2253 定義並在 LdapName 類別描述中描述的格式表示。
static Object unescapeValue(String val)
          在給定根據 RFC 2253 中指定的規則進行格式化的屬性值字元串的情況下,返回未格式化的值。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

Rdn

public Rdn(Attributes attrSet)
    throws InvalidNameException
根據給定屬性集建構 Rdn。參見 Attributes

字元串屬性值不會被解釋為 RFC 2253 格式的 RDN 字元串。即這些值是按字面意義(不解析)使用的,假定被取消了轉義。

參數:
attrSet - 套件含型別/值映射關係的非 null 非空(null)屬性。
拋出:
InvalidNameException - 如果無法使用 attrSet 的內容建構有效的 RDN。

Rdn

public Rdn(String rdnString)
    throws InvalidNameException
根據給定字元串建構 Rdn。此建構子採用根據 RFC 2253 中定義和在 LdapName 類別描述中描述的規則格式化的字元串。

參數:
rdnString - 非 null 和非空(null) RFC2253 格式化字元串。
拋出:
InvalidNameException - 如果在解析 rdnString 期間發生語法錯誤。

Rdn

public Rdn(Rdn rdn)
根據給定 rdn 建構 Rdn。將 rdn 的內容簡單地複製到新創建的 Rdn 中。

參數:
rdn - 要複製的非 null Rdn。

Rdn

public Rdn(String type,
           Object value)
    throws InvalidNameException
根據給定屬性型別和值建構 Rdn。字元串屬性值不會被解釋為 RFC 2253 格式的 RDN 字元串。即這些值是按字面意義(不解析)使用的,假定被取消了轉義。

參數:
type - 非 null 和非空(null)字元串屬性型別。
value - 非 null 和非空(null)屬性值。
拋出:
InvalidNameException - 如果無法使用型別/值建構有效的 RDN。
另請參見:
toString()
方法詳細資訊

getValue

public Object getValue()
檢索一個此 Rdn 的值。當 RDN 套件含單個型別和值的映射關係(常見的 RDN 用法)時,此為獲取值的便捷方法。

對於多值 RDN,此方法返回與 getType() 方法返回的型別相對應的值。

返回:
非 null 屬性值。

getType

public String getType()
檢索一個此 Rdn 的型別。當 RDN 套件含單個型別和值的映射關係(常見的 RDN 用法)時,此為獲取型別的便捷方法。

對於多值 RDN,型別/值對不具有對其定義的任何特定順序。在這種情況下,此方法返回一種型別/值對的型別。getValue() 方法返回與此方法返回的型別相對應的值。

返回:
非 null 屬性型別。

toString

public String toString()
以字元串形式返回此 Rdn,該字元串使用由 RFC 2253 定義並在 LdapName 類別描述中描述的格式表示。

覆寫:
類別 Object 中的 toString
返回:
Rdn 的字元串表示形式。

compareTo

public int compareTo(Object obj)
比較此 Rdn 與指定 Object 的順序。根據此 Rdn 小於、等於還是大於指定 Object 分別返回負整數、零或正整數。

如果 obj 為 null 或者不是一個 Rdn 實例,則拋出 ClassCastException。

將 RDN 的屬性型別和值對並肩排列起來,並按字典順序進行比較。多值 Rdn 中元件的順序(如 "ou=Sales+cn=Bob")無關緊要。

指定者:
介面 Comparable<Object> 中的 compareTo
參數:
obj - 要與之比較的非 null 物件。
返回:
根據此 Rdn 小於、等於還是大於指定 Object 分別返回負整數、零或正整數。
拋出:
ClassCastException - 如果 obj 為 null 或者不是一個 Rdn。


equals

public boolean equals(Object obj)
比較指定 Object 與此 Rdn 的相等性。如果給定對象也是 Rdn 並且兩個 Rdn 表示相同的屬性型別和值的映射關係,則返回 true。多值 Rdn 中元件的順序(如 "ou=Sales+cn=Bob")無關緊要。

按照以下方式進行型別和值的相等性比對:

如果 obj 為 null 或者不是一個 Rdn 實例,則返回 false。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與此 Rdn 進行相等性比較的物件。
返回:
如果指定的物件與此 Rdn 相等,則返回 true。
另請參見:
hashCode()

hashCode

public int hashCode()
返回此 RDN 的雜湊碼。兩個相等的(根據 equals 方法) RDN 將具有相同的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
表示此 Rdn 雜湊碼的 int。
另請參見:
equals(java.lang.Object)

toAttributes

public Attributes toAttributes()
檢索此 Rdn 中包含的型別/值映射關係的 Attributes 視圖。

返回:
包含此 Rdn 的型別/值映射關係的非 null 屬性。

size

public int size()
檢索此 Rdn 中的屬性型別/值對的數目。

返回:
此 Rdn 中非負的型別/值對的數目。

escapeValue

public static String escapeValue(Object val)
在給定屬性值的情況下返回根據 RFC 2253 中指定的規則轉義的字元串。

例如,如果 val 為 "Sue, Grabbit and Runn",則此方法返回的轉義值為 "Sue\, Grabbit and Runn"。

將字元串值表示為 String,將二進制值表示為位元組陣列。

參數:
val - 要轉義的非 null 物件。
返回:
轉義的字元串值。
拋出:
ClassCastException - 如果 val 不是 String 或位元組陣列。

unescapeValue

public static Object unescapeValue(String val)
在給定根據 RFC 2253 中指定的規則進行格式化的屬性值字元串的情況下,返回未格式化的值。移除轉義和參考,並將十六進制編碼的 UTF-8 轉換為等效的 UTF-16 字元。以 String 形式返回字元串值,以位元組陣列形式返回二進制值。

合法值和非法值在 RFC 2253 中定義。此方法在接受值方面要求並不嚴格,它不會捕獲所有的非法值。因此,傳入非法值時,不一定觸發 IllegalArgumentException

參數:
val - 要取消轉義的非 null 字元串。
返回:
轉義值。
拋出:
IllegalArgumentException - 當提供非法值時。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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