public class LdapName extends Object implements Name
このクラスは、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 がスローされます。
コンストラクタと説明 |
---|
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()
この LDAP 名の文字列表現を、RFC 2253 で定義され、クラスの説明に記載されている形式で返します。
|
public LdapName(String name) throws InvalidNameException
name
- RFC 2253 で定義された規則に従った書式の null 以外の識別名。InvalidNameException
- 構文違反が検出された場合。Rdn.escapeValue(Object value)
public int size()
public boolean isEmpty()
public Enumeration<String> getAll()
public String get(int posn)
get
、インタフェース: Name
posn
- 取得するコンポーネントの 0 から始まるインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException
- posn が指定された範囲にない場合。public Rdn getRdn(int posn)
posn
- 取得する RDN の 0 から始まるインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException
- posn が指定された範囲にない場合。public Name getPrefix(int posn)
getPrefix
、インタフェース: Name
posn
- 停止する位置を示す、コンポーネントの 0 から始まるインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException
- posn が指定された範囲にない場合。public Name getSuffix(int posn)
getSuffix
、インタフェース: Name
posn
- 開始する位置を示す、コンポーネントの 0 から始まるインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException
- posn が指定された範囲にない場合。public boolean startsWith(Name n)
startsWith
、インタフェース: Name
n
- チェックする LDAP 名。getPrefix(int posn)
public boolean startsWith(List<Rdn> rdns)
rdns
- チェックする Rdn のシーケンス。public boolean endsWith(Name n)
endsWith
、インタフェース: Name
n
- チェックする LDAP 名。getSuffix(int posn)
public boolean endsWith(List<Rdn> rdns)
rdns
- チェックする Rdn のシーケンス。public Name addAll(Name suffix) throws InvalidNameException
addAll
、インタフェース: Name
suffix
- 追加する null 以外のコンポーネント。InvalidNameException
- suffix が有効な LDAP 名でない場合、またはコンポーネントの追加がこの LDAP 名の構文規則に違反する場合。public Name addAll(List<Rdn> suffixRdns)
suffixRdns
- 追加する null 以外の接尾辞 Rdn。public Name addAll(int posn, Name suffix) throws InvalidNameException
addAll
、インタフェース: Name
suffix
- 追加する null 以外のコンポーネント。posn
- 新しいコンポーネントを追加するインデックス。範囲は [0,size()] でなければならない。InvalidNameException
- suffix が有効な LDAP 名でない場合、またはコンポーネントの追加がこの LDAP 名の構文規則に違反する場合。IndexOutOfBoundsException.
- posn が指定された範囲にない場合。public Name addAll(int posn, List<Rdn> suffixRdns)
suffixRdns
- 追加する null 以外の接尾辞 Rdn。posn
- 接尾辞 RDN が追加されるインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException.
- posn が指定された範囲にない場合。public Name add(String comp) throws InvalidNameException
add
、インタフェース: Name
comp
- 追加する null 以外のコンポーネント。InvalidNameException
- 名前の最後への comp の追加が名前の構文に違反する場合。public Name add(Rdn comp)
comp
- 追加する null 以外の RDN。public Name add(int posn, String comp) throws InvalidNameException
add
、インタフェース: Name
comp
- 追加する null 以外のコンポーネント。posn
- 新しいコンポーネントを追加するインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException.
- posn が指定された範囲にない場合。InvalidNameException
- 指定された位置への comp の追加が名前の構文に違反する場合。public Name add(int posn, Rdn comp)
comp
- 追加する null 以外の RDN。posn
- 新しい RDN が追加されるインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException
- posn が指定された範囲にない場合。public Object remove(int posn) throws InvalidNameException
remove
、インタフェース: Name
posn
- 削除するコンポーネントのインデックス。範囲は [0,size()] でなければならない。IndexOutOfBoundsException
- posn が指定された範囲にない場合。InvalidNameException
- コンポーネントの削除がこの名前の構文規則に違反する場合。public List<Rdn> getRdns()
Rdn
クラスのインスタンスである RDN のリストで表される名前。public Object clone()
public String toString()
public boolean equals(Object obj)
一方の LDAP 名の RDN がもう一方の LDAP 名の対応する RDN と等しければ、2 つの LDAP 名は等しいことになります。これは、2 つの LDAP 名が同じ数の RDN から構成され、対応するそれぞれの RDN の equals() テストが true を返すことを意味します。RDN の同等性の定義については、Rdn.equals(Object obj)
を参照してください。
equals
、クラス: Object
obj
- 比較対象となる null の可能性があるオブジェクト。hashCode()
public int compareTo(Object obj)
obj が null であるか、LdapName のインスタンスでない場合は、ClassCastException がスローされます。
LDAP 名の順序付けは、文字を比較するときの辞書的な規則に従います。 LDAP 名に含まれるすべての RDN に拡張子が適用されます。すべての RDN は指定順に並べられ、辞書的に比較されます。RDN の比較規則については、Rdn.compareTo(Object obj)
を参照してください。
この LDAP 名が辞書的に obj よりも短い場合、負の数が返されます。この LDAP 名が辞書的に obj よりも長い場合、正の数が返されます。
compareTo
、インタフェース: Comparable<Object>
compareTo
、インタフェース: Name
obj
- 比較される null 以外の LdapName インスタンス。ClassCastException
- obj が LdapName ではない場合。Comparable.compareTo(Object)
public int hashCode()
hashCode
、クラス: Object
equals(java.lang.Object)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.