JavaTM Platform
Standard Ed. 6

javax.naming.ldap
クラス LdapName

java.lang.Object
  上位を拡張 javax.naming.ldap.LdapName
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Object>, Name

public class LdapName
extends Object
implements Name

このクラスは、RFC 2253 に指定されている識別名を表します。識別名 (DN) は、「相対識別名 (RDN)」と呼ばれるコンポーネント群の順序付きリストです。DN の詳細は、RFC 2253 に記載されています。

このクラスは、RFC 2253 に見られるいくつかのあいまいな点を明らかにします。

LdapName に渡される文字列名や LdapName から返される文字列名は、完全な Unicode 文字セットを使用します。これらの文字列名には、「\B4」のような 3 文字のサブ文字列で表されるオクテットごとに、UTF-8 にエンコードされる文字を含めることができます。一方、文字列内の単一の文字で表されるオクテットごとに UTF-8 にエンコードされる文字を含めることはできません。この記述は、意味がやや曖昧です。

LdapName は、有効な名前をすべて適切に解析する一方で、無効な名前の解析時には、違反の可能性を完全には検出しません。つまり、無効な名前に対して「寛大」です。名前の有効性は、最終的に LDAP サーバーに渡された時点で判定されます。 LDAP サーバーは、スキーマ情報や相互運用の要件などの各種要因に基づいて、渡された名前を受け付けるか拒否します。

同等性、属性の型、バイナリ値および文字列値のテスト時に、名前を構成するアルファベットの大文字と小文字は区別されません。引用、エスケープ、UTF-8 の 16 進エンコーディングが同じであれば、文字列値そのものが異なっていても、同一の文字列と見なされる複数の値を持つ RDN (「ou=Sales+cn=Bob」など) のコンポーネントの順序は、特に重要ではありません。

LDAP 名のコンポーネント (RDN) には番号が付けられています。n 個の RDN からなる LDAP 名のインデックスの範囲は 0 〜 (n-1) であり、[0,n] のように記述されます。一番右の RDN はインデックス 0、一番左の RDN はインデックス n-1 です。たとえば、「CN=Steve Kille, O=Isode Limited, C=GB」という識別名には、{C=GB, O=Isode Limited, CN=Steve Kille} の順に、0、1、2 という番号が付けられます。空の LDAP 名は、空の RDN リストで表されます。

LdapName のインスタンスに対する読み取り専用の同時マルチスレッドアクセスは、必ずしも同期させなくてもかまいません。

ほかで指定がない場合、null 引数をコンストラクタ、またはこのクラスのメソッドへ渡すと、NullPointerException がスローされます。

導入されたバージョン:
1.5
関連項目:
直列化された形式

コンストラクタの概要
LdapName(List<Rdn> rdns)
          解析済み RDN コンポーネントを指定して LDAP 名を作成します。
LdapName(String name)
          識別名を指定して LDAP 名を作成します。
 
メソッドの概要
 Name add(int posn, Rdn comp)
          単一の RDN を、この LDAP 名の指定の位置に追加します。
 Name add(int posn, String comp)
          単一のコンポーネントを、この LDAP 名の指定の位置に追加します。
 Name add(Rdn comp)
          単一の RDN をこの LDAP 名の最後に追加します。
 Name add(String comp)
          単一のコンポーネントをこの LDAP 名の最後に追加します。
 Name addAll(int posn, List<Rdn> suffixRdns)
          名前の RDN を、この名前の指定の位置に順に追加します。
 Name addAll(int posn, Name suffix)
          名前のコンポーネントを、この名前の指定した位置に順に追加します。
 Name addAll(List<Rdn> suffixRdns)
          名前の RDN を、この名前の末尾に順に追加します。
 Name addAll(Name suffix)
          名前のコンポーネントを、この名前の末尾に順に追加します。
 Object clone()
          この名前のコピーを生成します。
 int compareTo(Object obj)
          LdapName と、指定された Object の順序を比較します。
 boolean endsWith(List<Rdn> rdns)
          指定の RDN シーケンスがこの LDAP 名の接尾辞になるかどうかを判定します。
 boolean endsWith(Name n)
          この LDAP 名が指定の LDAP 名の接尾辞で終わるかどうかが判定されます。
 boolean equals(Object obj)
          2 つの LDAP 名が等しいかどうかを判定します。
 String get(int posn)
          この LDAP 名のコンポーネントを文字列として取得します。
 Enumeration<String> getAll()
          この名前のコンポーネントを、文字列の列挙として取得します。
 Name getPrefix(int posn)
          コンポーネントがこの LDAP 名のコンポーネントの接頭辞で構成される名前を作成します。
 Rdn getRdn(int posn)
          この LDAP 名の RDN を Rdn として取得します。
 List<Rdn> getRdns()
          相対識別名のリストを取得します。
 Name getSuffix(int posn)
          コンポーネントがこの LDAP 名のコンポーネントの接尾辞で構成される名前を作成します。
 int hashCode()
          この LDAP 名のハッシュコードを計算します。
 boolean isEmpty()
          この LDAP 名が空かどうかを判定します。
 Object remove(int posn)
          この LDAP 名からコンポーネントを削除します。
 int size()
          この LDAP 名のコンポーネント数を取得します。
 boolean startsWith(List<Rdn> rdns)
          指定の RDN シーケンスがこの LDAP 名の接頭辞になるかどうかを判定します。
 boolean startsWith(Name n)
          この LDAP 名が指定の LDAP 名の接頭辞で始まるかどうかが判定されます。
 String toString()
          RFC 2253 に定義され、クラスの説明に記載されている書式で、この LDAP 名の文字列表現を返します。
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

LdapName

public LdapName(String name)
         throws InvalidNameException
識別名を指定して LDAP 名を作成します。

パラメータ:
name - RFC 2253 に 指定された書式の null 以外の識別名
例外:
InvalidNameException - 構文違反が検出された場合
関連項目:
Rdn.escapeValue(Object value)

LdapName

public LdapName(List<Rdn> rdns)
解析済み RDN コンポーネントを指定して LDAP 名を作成します。

リスト内の RDN のインデックスは、クラスの説明に記述された RDN の番号付けに従って付けられます。

パラメータ:
rdns - この LDAP 名を構成する Rdn の null 以外のリスト
メソッドの詳細

size

public int size()
この LDAP 名のコンポーネント数を取得します。

定義:
インタフェース Name 内の size
戻り値:
この LDAP 名のコンポーネント数。 0 以上

isEmpty

public boolean isEmpty()
この LDAP 名が空かどうかを判定します。空の名前は、コンポーネントがゼロの名前です。

定義:
インタフェース Name 内の isEmpty
戻り値:
この LDAP 名が空の場合は true、そうでない場合は false

getAll

public Enumeration<String> getAll()
この名前のコンポーネントを、文字列の列挙として取得します。この名前に更新することによる列挙への影響については、定義されていません。名前のコンポーネントがゼロの場合は、空の (null 以外の) 列挙が返されます。この列挙に含まれるコンポーネントは、クラスの説明に記述されているとおり、それぞれに付けられた番号順になっています。

定義:
インタフェース Name 内の getAll
戻り値:
この LDAP 名のコンポーネントの null 以外の列挙。列挙された各要素のクラスは String。

get

public String get(int posn)
この LDAP 名のコンポーネントを文字列として取得します。

定義:
インタフェース Name 内の get
パラメータ:
posn - 取得するコンポーネントの 0 から始まるインデックス範囲は [0,size()] でなければならない
戻り値:
インデックス位置の null 以外のコンポーネント
例外:
IndexOutOfBoundsException - 位置が指定した範囲にない場合

getRdn

public Rdn getRdn(int posn)
この LDAP 名の RDN を Rdn として取得します。

パラメータ:
posn - 取得する RDN の 0 から始まるインデックス。範囲は [0,size()] でなければならない
戻り値:
インデックス位置の null 以外の RDN
例外:
IndexOutOfBoundsException - 位置が指定した範囲にない場合

getPrefix

public Name getPrefix(int posn)
コンポーネントがこの LDAP 名のコンポーネントの接頭辞で構成される名前を作成します。そのあとこの名前を変更しても、返される名前には影響しません。 また逆の場合も同じです。

定義:
インタフェース Name 内の getPrefix
パラメータ:
posn - 停止するコンポーネントの 0 から始まるインデックス範囲は [0,size()] でなければならない
戻り値:
範囲が [0,posn) のインデックスのコンポーネントで構成される LdapName のインスタンス。位置がゼロの場合は、空の LDAP 名が返される
例外:
IndexOutOfBoundsException - 位置が指定した範囲にない場合

getSuffix

public Name getSuffix(int posn)
コンポーネントがこの LDAP 名のコンポーネントの接尾辞で構成される名前を作成します。そのあとこの名前を変更しても、返される名前には影響しません。 また逆の場合も同じです。

定義:
インタフェース Name 内の getSuffix
パラメータ:
posn - 開始するコンポーネントの 0 から始まるインデックス範囲は [0,size()] でなければならない
戻り値:
範囲が [posn,size()) のインデックスのコンポーネントで構成される LdapName のインスタンス。位置が size() に等しい場合は、空の LDAP 名が返される
例外:
IndexOutOfBoundsException - 位置が指定した範囲にない場合

startsWith

public boolean startsWith(Name n)
この LDAP 名が指定の LDAP 名の接頭辞で始まるかどうかが判定されます。n という名前は、getPrefix(n.size()) と等しい場合に接頭辞になります。 つまり、この LDAP 名は 'n' で開始されます。n が null である場合や、クラスの説明にあるように、RFC 2253 に指定された書式でない場合は、false が返されます。

定義:
インタフェース Name 内の startsWith
パラメータ:
n - チェック対象の LDAP 名
戻り値:
n がこの LDAP 名の接頭辞である場合は true、 そうでない場合は false
関連項目:
getPrefix(int posn)

startsWith

public boolean startsWith(List<Rdn> rdns)
指定の RDN シーケンスがこの LDAP 名の接頭辞になるかどうかを判定します。この LdapName が rdns と同じ長さであり、範囲 [0, rdns.size()] 内の位置 p でコンポーネント getRdn(p) が rdns.get(p) に一致する場合、true が返されます。それ以外の場合は false が返されます。また、rdns が null の場合、false が返されます。

パラメータ:
rdns - チェックする Rdn シーケンス
戻り値:
rdns がこの LDAP 名の接頭辞を形成する場合は true、 そうでない場合は false

endsWith

public boolean endsWith(Name n)
この LDAP 名が指定の LDAP 名の接尾辞で終わるかどうかが判定されます。n という名前は、getSuffix(size()-n.size()) と等しい場合に接尾辞になります。 つまり、この LDAP 名は 'n' で終わります。n が null である場合や、クラスの説明にあるように、RFC 2253 に指定された書式でない場合は、false が返されます。

定義:
インタフェース Name 内の endsWith
パラメータ:
n - チェック対象の LDAP 名
戻り値:
n がこの名前の接尾辞である場合は true、そうでない場合は false
関連項目:
getSuffix(int posn)

endsWith

public boolean endsWith(List<Rdn> rdns)
指定の RDN シーケンスがこの LDAP 名の接尾辞になるかどうかを判定します。この LdapName が rdns と同じ長さであり、範囲 [size() - rdns.size(), size()] 内の位置 p でコンポーネント getRdn(p) が rdns.get(p) に一致する場合、true が返されます。それ以外の場合は false が返されます。また、rdns が null の場合、false が返されます。

パラメータ:
rdns - チェックする Rdn シーケンス
戻り値:
rdns がこの LDAP 名の接尾辞である場合は true、 そうでない場合は false

addAll

public Name addAll(Name suffix)
            throws InvalidNameException
名前のコンポーネントを、この名前の末尾に順に追加します。

定義:
インタフェース Name 内の addAll
パラメータ:
suffix - 追加する null 以外のコンポーネント
戻り値:
更新された名前 (新しいインスタンスではない)
例外:
InvalidNameException - suffix が有効な LDAP 名ではない場合、 またはコンポーネントの追加がこの LDAP 名の構文規則に 違反する場合

addAll

public Name addAll(List<Rdn> suffixRdns)
名前の RDN を、この名前の末尾に順に追加します。

パラメータ:
suffixRdns - 追加する null 以外の接尾辞 Rdn
戻り値:
更新された名前 (新しいインスタンスではない)

addAll

public Name addAll(int posn,
                   Name suffix)
            throws InvalidNameException
名前のコンポーネントを、この名前の指定した位置に順に追加します。最初の新しいコンポーネントのインデックス位置、またはそれより後ろに LDAP 名のコンポーネントがある場合、このコンポーネントは、新しいコンポーネントに対応できるように上に移動します (0 から離れる)。

定義:
インタフェース Name 内の addAll
パラメータ:
suffix - 追加する null 以外のコンポーネント
posn - 新しいコンポーネントが追加されるインデックス範囲は [0,size()] でなければならない
戻り値:
更新された名前 (新しいインスタンスではない)
例外:
InvalidNameException - suffix が有効な LDAP 名ではない場合、 またはコンポーネントの追加がこの LDAP 名の構文規則に 違反する場合
IndexOutOfBoundsException. - 位置が指定した範囲にない場合

addAll

public Name addAll(int posn,
                   List<Rdn> suffixRdns)
名前の RDN を、この名前の指定の位置に順に追加します。最初の新しい RDN のインデックス位置、またはそれより後ろに LDAP 名の RDN がある場合、この RDN は、新しい RDN を取り込めるように上に移動します (インデックス 0 から離れる)。

パラメータ:
suffixRdns - 追加する null 以外の接尾辞 Rdn
posn - RDN が追加されるインデックス。範囲は [0,size()] でなければならない
戻り値:
更新された名前 (新しいインスタンスではない)
例外:
IndexOutOfBoundsException. - 位置が指定した範囲にない場合

add

public Name add(String comp)
         throws InvalidNameException
単一のコンポーネントをこの LDAP 名の最後に追加します。

定義:
インタフェース Name 内の add
パラメータ:
comp - 追加する null 以外のコンポーネント
戻り値:
新しい LdapName ではなく、更新された LdapName。null は不可
例外:
InvalidNameException - 名前の最後にコンポーネントを追加すると、名前の構文に違反する場合

add

public Name add(Rdn comp)
単一の RDN をこの LDAP 名の最後に追加します。

パラメータ:
comp - 追加する null 以外の RDN
戻り値:
新しい LdapName ではなく、更新された LdapName。null は不可

add

public Name add(int posn,
                String comp)
         throws InvalidNameException
単一のコンポーネントを、この LDAP 名の指定の位置に追加します。新しいコンポーネントのインデックス位置、またはそれより後ろにあるこの LDAP 名のコンポーネントは、新しいコンポーネントを取り込むために 1 つ上に移動 (インデックス 0 から離れる) します。

定義:
インタフェース Name 内の add
パラメータ:
comp - 追加する null 以外のコンポーネント
posn - 新しいコンポーネントが追加されるインデックス範囲は [0,size()] でなければならない
戻り値:
新しい LdapName ではなく、更新された LdapName。null は不可
例外:
IndexOutOfBoundsException. - 位置が指定した範囲にない場合
InvalidNameException - 指定した位置にコンポーネントを追加すると、名前の構文に違反する場合

add

public Name add(int posn,
                Rdn comp)
単一の RDN を、この LDAP 名の指定の位置に追加します。新しい RDN のインデックス位置、またはそれより後ろにあるこの LDAP 名の RDN は、新しい RDN を取り込むために 1 つ上に移動 (インデックス 0 から離れる) します。

パラメータ:
comp - 追加する null 以外の RDN
posn - 新しい RDN が追加されるインデックス。範囲は [0,size()] でなければならない
戻り値:
新しい LdapName ではなく、更新された LdapName。null は不可
例外:
IndexOutOfBoundsException - 位置が指定した範囲にない場合

remove

public Object remove(int posn)
              throws InvalidNameException
この LDAP 名からコンポーネントを削除します。指定した位置にあるこの名前のコンポーネントが削除されます。この位置より大きいインデックスのコンポーネントは、1 つ下 (インデックス 0 の方に) に移動されます。

定義:
インタフェース Name 内の remove
パラメータ:
posn - 削除するコンポーネントのインデックス。範囲は [0,size()] でなければならない
戻り値:
削除されたコンポーネント (String)
例外:
IndexOutOfBoundsException - 位置が指定した範囲にない場合
InvalidNameException - コンポーネントの削除がこの名前の構文規則に違反する場合

getRdns

public List<Rdn> getRdns()
相対識別名のリストを取得します。リストの内容は変更できません。返されるリストに含まれる RDN のインデックスは、クラスの説明にあるように、RDN の番号付けに従っています。名前に含まれるコンポーネント数がゼロの場合、空のリストが返されます。

戻り値:
Rdn クラスのインスタンスである RDN のリストで表される名前

clone

public Object clone()
この名前のコピーを生成します。この名前のコンポーネントをあとで変更しても、新しいコピーには影響しません。 また逆の場合も同じです。

定義:
インタフェース Name 内の clone
オーバーライド:
クラス Object 内の clone
戻り値:
この LDAP 名のコピー
関連項目:
Cloneable

toString

public String toString()
RFC 2253 に定義され、クラスの説明に記載されている書式で、この LDAP 名の文字列表現を返します。名前に含まれるコンポーネント数がゼロの場合、空の文字列が返されます。

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

equals

public boolean equals(Object obj)
2 つの LDAP 名が等しいかどうかを判定します。obj が null であるか、LDAP 名でない場合は、false が返されます。

一方の LDAP 名の RDN がもう一方の LDAP 名の対応する RDN と等しければ、2 つの LDAP 名は等しいことになります。これは、2 つの LDAP 名が同じ数の RDN から構成され、対応するそれぞれの RDN の equals() テストが true を返すことを意味します。RDN の同等性の定義については、Rdn.equals(Object obj) を参照してください。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - null の可能性がある比較対照オブジェクト
戻り値:
obj がこの LDAP 名と等しい場合は true、そうでない場合は false
関連項目:
hashCode()

compareTo

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

obj が null であるか、LdapName のインスタンスでない場合は、ClassCastException がスローされます。

LDAP 名の順序付けは、文字を比較するときの辞書的な規則に従います。 LDAP 名に含まれるすべての RDN に拡張子が適用されます。すべての RDN は指定順に並べられ、辞書的に比較されます。RDN の比較規則については、Rdn.compareTo(Object obj) を参照してください。

この LDAP 名が辞書的に obj よりも短い場合、負の数が返されます。この LDAP 名が辞書的に obj よりも長い場合、正の数が返されます。

定義:
インタフェース Comparable<Object> 内の compareTo
定義:
インタフェース Name 内の compareTo
パラメータ:
obj - 比較される null 以外の LdapName
戻り値:
この Name の値が指定された obj よりも小さい場合は負の整数、 等しい場合は 0、大きい場合は正の整数
例外:
ClassCastException - obj が LdapName ではない場合
関連項目:
Comparable.compareTo(Object)

hashCode

public int hashCode()
この LDAP 名のハッシュコードを計算します。ハッシュコードとは、この LDAP 名の個々の RDN のハッシュコードの集合です。

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

JavaTM Platform
Standard Ed. 6

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

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