モジュール java.naming
パッケージ 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を参照)を表します。 一例として、「OU=Sales+CN=J.Smith」というRDNがあるとします。 この例では、RDNは複数の属性の型/値ペアで構成されています。 RDNは、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
関連項目: