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 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, 2014, Oracle and/or its affiliates. All rights reserved.