- すべての実装されたインタフェース:
Serializable
,Comparable<Object>
LdapName
のクラス記述で説明されているように解析されます。
Rdnクラスは、RDNを、Attributes
を使って表示可能な属性の型と値のマッピングとして表現します。 Rdnクラスには、Rdnが単一の型/値ペア(通常この形式で使用)で構成されているとき、この型と値を簡単に取得できるようにする便利なメソッドが含まれています。 また、RFC 2253に定義されているエスケープ構文に従って、書式なし属性値のエスケープと書式化された値のエスケープ解除を行なうヘルパー・メソッドも含まれています。 属性値をObjectとして取得、または返すメソッドの場合、値はString (エスケープ解除された書式)またはバイト配列になります。
Rdn
は、有効なRDNをすべて適切に解析する一方で、無効なRDNの解析時には、可能なすべての違反を検出しません。 つまり、無効なRDNに対して「寛大」です。 名前の有効性は、最終的にLDAPサーバーに渡された時点で判定されます。LDAPサーバーは、スキーマ情報や相互運用の要件などの各種要因に基づいて、渡された名前を受け付けるか拒否します。
次に示すのは、型と値を引数として取るコンストラクタを使ってRdnを構築するコード例です。
Rdn rdn = new Rdn("cn", "Juicy, Fruit"); System.out.println(rdn.toString());最終行により、
cn=Juicy\, Fruit
が出力されます。 unescapeValue()
メソッドを使用すると、エスケープされたカンマをエスケープして元の値"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
- 関連項目:
- 直列化された形式
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明int
Rdnと、指定されたObjectの順序を比較します。boolean
指定のObjectとこのRdnの同等性を比較します。static String
escapeValue(Object val)
属性の値を指定し、RFC 2253に指定されている規則に従ってエスケープされた文字列を返します。getType()
このRdnの型の1つを取得します。getValue()
このRdnの値の1つを取得します。int
hashCode()
このRDNのハッシュ・コードを返します。int
size()
このRdnに含まれる属性の型/値ペアの数を取得します。このRdnに含まれる型/値のマッピングのAttributes
ビューを取得します。toString()
static Object
unescapeValue(String val)
RFC 2253で指定された規則に従って書式設定された属性値文字列が与えられている場合は、書式なしの値を返します。
-
コンストラクタの詳細
-
Rdn
public Rdn(Attributes attrSet) throws InvalidNameException指定の属性セットからRdnを作成します。Attributes
を参照してください。文字列の属性値は、RFC 2253指定の書式のRDN文字列とは解釈されません。 つまり、これらの値は文字どおり解釈され(解析の対象にならない)、エスケープは解除されているものと見なされます。
- パラメータ:
attrSet
- 型/値のマッピングを含むnull以外の空でない属性。- 例外:
InvalidNameException
-attrSet
の内容を使って有効なRDNを作成できない場合。
-
Rdn
public Rdn(String rdnString) throws InvalidNameException指定の文字列からRdnを作成します。 このコンストラクタは、RFC 2253に定義されている規則に従って書式化された文字列を取ります。この規則については、LdapName
のクラスの説明を参照してください。- パラメータ:
rdnString
- RFC 2253に定義されている書式を持つ、null以外の空でない文字列。- 例外:
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以外の空でない文字列の属性の型。value
- null以外の空でない文字列の属性の値。- 例外:
InvalidNameException
- 型/値のペアを使って有効なRDNを作成できない場合。- 関連項目:
toString()
-
-
メソッドの詳細
-
getValue
public Object getValue()このRdnの値の1つを取得します。 これは、RDNに型と値のマッピングが1つだけ含まれるとき(一般的なRDNの使用例)、この値を取得するために使用する便利なメソッドです。RDNの値が複数存在する場合、このメソッドは、
getType()
メソッドによって返される型に対応する値を返します。- 戻り値:
- null以外の属性値。
-
getType
public String getType()このRdnの型の1つを取得します。 これは、RDNに型と値のマッピングが1つだけ含まれるとき(一般的なRDNの使用例)、この型を取得するために使用する便利なメソッドです。RDNの値が複数存在する場合、型/値ペアの順序は特に定義されていません。 この場合、このメソッドは、型/値ペアのいずれか1つの型を返します。
getValue()
メソッドは、このメソッドによって返される型に対応する値を返します。- 戻り値:
- null以外の属性型。
-
toString
public String toString() -
compareTo
public int compareTo(Object obj)Rdnと、指定されたObjectの順序を比較します。 Rdnが指定されたObjectより小さい場合は負の整数、等しい場合は0、大きい場合は正の整数をそれぞれ返します。objがnull、またはRdnのインスタンスではない場合は、ClassCastExceptionがスローされます。
RDNの属性の型と値のペアが、それぞれ辞書的に比較されます。 複数の値を持つRdn (「ou=Sales+cn=Bob」など)内のコンポーネントの順序は重要ではありません。
- 定義:
compareTo
、インタフェース:Comparable<Object>
- パラメータ:
obj
- 比較対象となるnull以外のオブジェクト。- 戻り値:
- 与えられたオブジェクトよりこのRdnが小さい場合は負の整数、等しい場合は0、大きい場合は正の整数。
- 例外:
ClassCastException
- objがnullであるか、Rdnではない場合。
-
equals
public boolean equals(Object obj)指定のObjectとこのRdnの同等性を比較します。 比較対象のオブジェクトもRdnであり、2つのRdnが同一の属性の型と値のマッピングを表している場合は、trueが返されます。 複数の値を持つRdn (「ou=Sales+cn=Bob」など)内のコンポーネントの順序は重要ではありません。型の値の同等性のマッチングは次のように行われます。
- 型の同等性が比較されます(アルファベットの大文字と小文字は区別されない)。
- 引用、エスケープ、UTF-8の16進エンコーディングが同じであれば、文字列値そのものが異なっていても、同一の文字列と見なされます。 値のアルファベットの大文字と小文字は区別されません。
objがnullである場合、またはRdnのインスタンスではない場合は、falseが返されます。
- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- このRdnと等しいかどうかを比較するオブジェクト。- 戻り値:
- 指定されたオブジェクトがこのRdnと等しい場合はtrue。
- 関連項目:
hashCode()
-
hashCode
public int hashCode()このRDNのハッシュ・コードを返します。 equalsメソッドにより同等であることがわかっている2つのRDNは、同じハッシュ・コードを持ちます。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このRdnのハッシュ・コードを表すint。
- 関連項目:
equals(java.lang.Object)
-
toAttributes
public Attributes toAttributes()このRdnに含まれる型/値のマッピングのAttributes
ビューを取得します。- 戻り値:
- このRdnの型/値のマッピングを含む、null以外の属性。
-
size
public int size()このRdnに含まれる属性の型/値ペアの数を取得します。- 戻り値:
- このRdnに含まれる型/値ペアの数(0以上)。
-
escapeValue
属性の値を指定し、RFC 2253に指定されている規則に従ってエスケープされた文字列を返します。たとえば、valが「Sue, Grabbit and Runn」の場合、このメソッドによって返されるエスケープされた値は、「Sue\, Grabbit and Runn」になります。
文字列値は、Stringと、バイト配列で表されるバイナリ値として表現されます。
- パラメータ:
val
- エスケープするnull以外のオブジェクト。- 戻り値:
- エスケープされた文字列値。
- 例外:
ClassCastException
- valがStringまたはバイト配列でない場合。
-
unescapeValue
RFC 2253で指定された規則に従って書式設定された属性値文字列が与えられている場合は、書式なしの値を返します。 エスケープと引用符は除去され、16進エンコーディングされたUTF-8は同等のUTF-16文字に変換されます。 文字列値をString、バイナリ値をバイト配列として返します。正当な値と不当な値は、RFC 2253に定義されています。 このメソッドは、値を受け付けることに対して寛大で、不当な値をすべて検出しません。 このため、不当な値を渡しても、必ずしも
IllegalArgumentException
はトリガーされません。- パラメータ:
val
- エスケープ解除するnull以外の文字列。- 戻り値:
- エスケープ解除された値。
- 例外:
IllegalArgumentException
- 不当な値が渡された場合。
-