モジュール java.naming
パッケージ 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に見られるいくつかのあいまいな点を明らかにします。

    • RFC 2253では、「空白」という語の意味が未定義になっています。 代わりにASCII空白文字0x20 (" ")が使用されています。
    • 空白は、カンマ(,)、セミコロン(;)、等号(=)、プラス記号(+)の左右どちら側にも入力できます。 こうした空白は、このコード内で使用可能ですが、このコードによって生成されることはなく、名前の比較時には無視されます。
    • 等号(=)を含むAttributeValue文字列や、行の先頭以外の位置にあるエスケープされないハッシュ記号(#)も使用可能です。

    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​(String name)
      識別名を指定してLDAP名を作成します。
      LdapName​(List<Rdn> rdns)
      解析済みRDNコンポーネントを指定してLDAP名を作成します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Name add​(int posn, String comp)
      単一のコンポーネントを、このLDAP名の指定の位置に追加します。
      Name add​(int posn, Rdn comp)
      単一のRDNを、このLDAP名の指定の位置に追加します。
      Name add​(String comp)
      単一のコンポーネントをこのLDAP名の最後に追加します。
      Name add​(Rdn comp)
      単一のRDNをこの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で定義され、クラスの説明に記載されている形式で返します。
    • コンストラクタの詳細

      • LdapName

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

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

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

      • size

        public int size​()
        このLDAP名のコンポーネント数を取得します。
        定義:
        size、インタフェース: Name
        戻り値:
        このLDAP名のコンポーネント数。0以上。
      • isEmpty

        public boolean isEmpty​()
        このLDAP名が空かどうかを判定します。 空の名前は、コンポーネントがゼロの名前です。
        定義:
        isEmpty、インタフェース: Name
        戻り値:
        このLDAP名が空の場合はtrue、そうでない場合はfalse。
      • getAll

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

        public String get​(int posn)
        このLDAP名のコンポーネントを文字列として取得します。
        定義:
        get、インタフェース: Name
        パラメータ:
        posn - 取得するコンポーネントの0から始まるインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        インデックス位置のnull以外のコンポーネント。
        例外:
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
      • getRdn

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

        public Name getPrefix​(int posn)
        コンポーネントがこのLDAP名のコンポーネントの接頭辞で構成される名前を作成します。 その後この名前を変更しても、返される名前には影響しません。また逆の場合も同じです。
        定義:
        getPrefix、インタフェース: Name
        パラメータ:
        posn - 停止する位置を示す、コンポーネントの0から始まるインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        範囲[0、posn]のインデックスのコンポーネントからなるLdapNameのインスタンス。 位置がゼロの場合は、空のLDAP名が返される。
        例外:
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
      • getSuffix

        public Name getSuffix​(int posn)
        コンポーネントがこのLDAP名のコンポーネントの接尾辞を構成する名前を作成します。 その後この名前を変更しても、返される名前には影響しません。また逆の場合も同じです。
        定義:
        getSuffix、インタフェース: Name
        パラメータ:
        posn - 開始する位置を示す、コンポーネントの0から始まるインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        範囲が[posn,size()]のインデックスのコンポーネントで構成されるLdapNameのインスタンス。 位置がsize()に等しい場合は、空のLDAP名が返される。
        例外:
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
      • startsWith

        public boolean startsWith​(Name n)
        このLDAP名が指定のLDAP名の接頭辞で始まるかどうかが判定されます。 nという名前は、getPrefix(n.size())と等しい場合に接頭辞になります。つまり、このLDAP名はnで開始されます。 nがnullである場合や、クラスの説明にあるように、RFC 2253に指定された書式でない場合は、falseが返されます。
        定義:
        startsWith、インタフェース: Name
        パラメータ:
        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が返されます。
        定義:
        endsWith、インタフェース: Name
        パラメータ:
        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
        名前のコンポーネントを、この名前の末尾に順に追加します。
        定義:
        addAll、インタフェース: Name
        パラメータ:
        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から離れる)。
        定義:
        addAll、インタフェース: Name
        パラメータ:
        suffix - 追加するnull以外のコンポーネント。
        posn - 新しいコンポーネントを追加するインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        更新された名前(新しいインスタンスではない)。
        例外:
        InvalidNameException - suffixが有効なLDAP名でない場合、またはコンポーネントの追加がこのLDAP名の構文規則に違反する場合。
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
      • addAll

        public Name addAll​(int posn,
                           List<Rdn> suffixRdns)
        名前のRDNを、この名前の指定の位置に順に追加します。 最初の新しいRDNのインデックス位置、またはそれより後ろにLDAP名のRDNがある場合、このRDNは、新しいRDNを取り込めるように上に移動します(インデックス0から離れる)。
        パラメータ:
        suffixRdns - 追加するnull以外の接尾辞Rdn
        posn - 接尾辞RDNが追加されるインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        更新された名前(新しいインスタンスではない)。
        例外:
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
      • add

        public Name add​(String comp)
                 throws InvalidNameException
        単一のコンポーネントをこのLDAP名の最後に追加します。
        定義:
        add、インタフェース: Name
        パラメータ:
        comp - 追加するnull以外のコンポーネント。
        戻り値:
        新しいLdapNameではなく、更新されたLdapName。 nullは不可。
        例外:
        InvalidNameException - 名前の最後へのcompの追加が名前の構文に違反する場合。
      • 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から離れる)します。
        定義:
        add、インタフェース: Name
        パラメータ:
        comp - 追加するnull以外のコンポーネント。
        posn - 新しいコンポーネントを追加するインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        新しいLdapNameではなく、更新されたLdapName。 nullは不可。
        例外:
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
        InvalidNameException - 指定された位置へのcompの追加が名前の構文に違反する場合。
      • 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 - posnが指定された範囲にない場合。
      • remove

        public Object remove​(int posn)
                      throws InvalidNameException
        このLDAP名からコンポーネントを削除します。 指定した位置にあるこの名前のコンポーネントが削除されます。 この位置より大きいインデックスのコンポーネントは、1つ下(インデックス0の方に)に移動されます。
        定義:
        remove、インタフェース: Name
        パラメータ:
        posn - 削除するコンポーネントのインデックス。 範囲は[0,size()]でなければならない。
        戻り値:
        削除されたコンポーネント(String)。
        例外:
        IndexOutOfBoundsException - posnが指定された範囲にない場合。
        InvalidNameException - コンポーネントの削除がこの名前の構文規則に違反する場合。
      • getRdns

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

        public Object clone​()
        この名前のコピーを生成します。 この名前のコンポーネントを後で変更しても、新しいコピーには影響しません。また逆の場合も同じです。
        定義:
        clone、インタフェース: Name
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このLDAP名のコピー。
        関連項目:
        Cloneable
      • toString

        public String toString​()
        このLDAP名の文字列表現を、RFC 2253で定義され、クラスの説明に記載されている形式で返します。 名前に含まれるコンポーネント数がゼロの場合、空の文字列が返されます。
        オーバーライド:
        toString、クラス: Object
        戻り値:
        LdapNameの文字列表現。
      • equals

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

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

        オーバーライド:
        equals、クラス: Object
        パラメータ:
        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よりも長い場合、正の数が返されます。

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

        public int hashCode​()
        このLDAP名のハッシュ・コードを計算します。 ハッシュ・コードとは、この名前の個々のRDNのハッシュ・コードの集合です。
        オーバーライド:
        hashCode、クラス: Object
        戻り値:
        この名前のハッシュ・コードを表すint。
        関連項目:
        equals(java.lang.Object)