JavaTM 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 を参照) を表します。たとえば、「OU=Sales+CN=J.Smith」という 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 が出力されます。元の値 "Juicy, Fruit" 内のエスケープされたコンマのエスケープを解除するには、unescapeValue() メソッドを使用します。コンマの前にエスケープを追加するには、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 の型の 1 つを取得します。
 Object getValue()
          この Rdn の値の 1 つを取得します。
 int hashCode()
          この RDN のハッシュコードを返します。
 int size()
          この Rdn に含まれる属性の型/値ペアの数を取得します。
 Attributes toAttributes()
          この Rdn に含まれる型/値のマッピングの Attributes ビューを取得します。
 String toString()
          RFC 2253 に定義され、LdapName のクラスの説明に記載されている書式で表現された文字列として、この Rdn を返します。
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 以外の空でない属性
例外:
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()
RFC 2253 に定義され、LdapName のクラスの説明に記載されている書式で表現された文字列として、この Rdn を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
Rdn の文字列表現

compareTo

public int compareTo(Object obj)
Rdn と、指定された Object の順序を比較します。Rdn が指定された Object より小さい場合は負の整数、等しい場合は 0、大きい場合は正の整数をそれぞれ返します。

obj が null、または Rdn のインスタンスではない場合は、ClassCastException がスローされます。

RDN の属性の型と値のペアが、それぞれ辞書的に比較されます。複数の値を持つ Rdn (「ou=Sales+cn=Bob」など) 内のコンポーネントの順序は重要ではありません。

定義:
インタフェース Comparable<Object> 内の compareTo
パラメータ:
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」など) 内のコンポーネントの順序は重要ではありません。

型の値の同等性のマッチングは次のように行われます。

obj が null である場合、または Rdn のインスタンスではない場合は、false が返されます。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - この Rdn と等しいかどうかを比較するオブジェクト
戻り値:
指定されたオブジェクトがこの Rdn と等しい場合は true
関連項目:
hashCode()

hashCode

public int hashCode()
この RDN のハッシュコードを返します。equals メソッドにより同等であることがわかっている 2 つの RDN は、同じハッシュコードを持ちます。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この Rdn のハッシュコードを表す int
関連項目:
equals(java.lang.Object)

toAttributes

public Attributes toAttributes()
この Rdn に含まれる型/値のマッピングの Attributes ビューを取得します。

戻り値:
この Rdn の型/値のマッピングを含む、null 以外の属性

size

public int size()
この Rdn に含まれる属性の型/値ペアの数を取得します。

戻り値:
この Rdn に含まれる型/値ペアの数 (0 以上)

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 に指定されている規則に従って書式化された属性値の文字列を指定して、書式化されていない値を返します。エスケープと引用符は除去され、16 進エンコーディングされた UTF-8 は同等の UTF-16 文字に変換されます。文字列値を String、バイナリ値をバイト配列として返します。

正当な値と不当な値は、RFC 2253 に定義されています。 このメソッドは、値を受け付けることに対して寛大で、不当な値をすべて検出しません。よって、不当な値を渡しても、必ずしも IllegalArgumentException はトリガーされません。

パラメータ:
val - エスケープ解除する null 以外の文字列
戻り値:
エスケープ解除された値
例外:
IllegalArgumentException - 不当な値が渡された場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。