モジュール java.naming
パッケージ javax.naming

クラスCompositeName

java.lang.Object
javax.naming.CompositeName
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Object>, Name

public class CompositeName
extends Object
implements Name
このクラスは、合成名を表します。合成名とは、複数の名前空間にまたがる一連のコンポーネントの名前です。 各コンポーネントは、ネーミング・システムの名前空間に由来する文字列名です。 コンポーネントが階層名前空間から生ずる場合、CompoundNameクラスを使用することでその基本部分をさらに構文解析できます。

合成名のコンポーネントには、番号が付けられます。 Nコンポーネントの合成名のインデックス範囲は、0からN未満の範囲で番号が付けられます。 この範囲は、[0,N]と表されます。 もっとも重要なコンポーネントは、インデックス0にあります。 空の合成名にはコンポーネントはありません。

JNDI合成名の構文

JNDIでは、合成名の標準文字列表記が定義されます。 この表記では、各コンポーネントを区切るためのコンポーネント区切り文字(スラッシュ(/))を使用して、左から右に合成名のコンポーネントが連結されます。 JNDI構文では、次のメタキャラクタが定義されます。
  • エスケープ(バックスラッシュ\)、
  • 引用符文字(単一引用符(')および二重引用符("))
  • コンポーネント区切り文字(スラッシュ(/))
先行する引用符、メタキャラクタに先行するエスケープ、コンポーネントの末尾のエスケープ、または引用符のないコンポーネントのコンポーネント区切り文字には、そのコンポーネントが合成名文字列に変換されるときに、前にエスケープ文字を付ける必要があります。 または、このようなエスケープ文字を追加しない場合は、単一引用符または二重引用符を対で使用して、コンポーネント全体を引用符で囲みます。 二重引用符で囲まれたコンポーネントの単一引用符は、メタキャラクタとはみなされず、エスケープされる必要もありません。また逆の場合も同じです。

2つの合成名を比較する場合は、大文字小文字の区別が重要になります。

先行するコンポーネント区切り文字(区切り文字で始まる合成名の文字列)は、先行する空のコンポーネント(空の文字列で構成されるコンポーネント)を表します。 末尾のコンポーネント区切り文字(区切り文字で終わる合成名の文字列)は、末尾の空のコンポーネントを表します。 隣接する複合区切り文字は、空のコンポーネントを表します。

合成名の例

次の表に、合成名の例を示します。 各行は、合成名の文字列形式、および対応する構造形式(CompositeName)を示しています。
合成名の文字列形式、およびそれに対応する構造形式(CompositeName)を示す例
文字列名 CompositeName
"" {} (空の名前==新しいCompositeName("")==新しいCompositeName())
"x" {"x"}
"x/y" {"x", "y"}
"x/" {"x", ""}
"/x" {"", "x"}
"/" {""}
"//" {"", ""}
"/x/" {"", "x", ""}
"x//y" {"x", "", "y"}

変換の例

変換の例を示します。 右側の列に文字列の合成名の変換を、左側の列に対応するCompositeNameの変換を示します。 2つの合成名を持つ文字列形式の変換は、文字列形式を連結するだけです。
文字列名および合成名を示す構成例
文字列名 CompositeNames
"x/y" + "/" = x/y/ {"x", "y"} + {""} = {"x", "y", ""}
"" + "x" = "x" {} + {"x"} = {"x"}
"/" + "x" = "/x" {""} + {"x"} = {"", "x"}
"x" + "" + "" = "x" {"x"} + {} + {} = {"x"}

マルチスレッド・アクセス

CompositeNameインスタンスは、並行マルチスレッド・アクセスに対しては同期化されません。 複数のスレッドからCompositeNameにアクセスして変更する場合は、オブジェクトをロックする必要があります。
導入されたバージョン:
1.3
関連項目:
直列化された形式
  • コンストラクタのサマリー

    コンストラクタ 
    修飾子 コンストラクタ 説明
      CompositeName()
    新しい空の合成名を構築します。
      CompositeName​(String n)
    合成名の構文(左から右、スラッシュで区切られる)を使用して、文字列nを構文解析することで、新しい合成名インスタンスを構築します。
    protected CompositeName​(Enumeration<String> comps)
    'comps'で指定されるコンポーネントを使用して、新しい合成名インスタンスを構築します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    Name add​(int posn, String comp)
    単一のコンポーネントを、この合成名の指定した位置に追加します。
    Name add​(String comp)
    単一のコンポーネントをこの合成名の最後に追加します。
    Name addAll​(int posn, Name n)
    合成名のコンポーネントを、この合成名の指定した位置に順に追加します。
    Name addAll​(Name suffix)
    合成名のコンポーネントを、この合成名の末尾に順に追加します。
    Object clone()
    この合成名のコピーを生成します。
    int compareTo​(Object obj)
    CompositeNameと、指定されたObjectの順序を比較します。
    boolean endsWith​(Name n)
    合成名がこの合成名の接尾辞であるかが判定されます。
    boolean equals​(Object obj)
    2つの合成名が等しいかを判定します。
    String get​(int posn)
    この合成名のコンポーネントを取得します。
    Enumeration<String> getAll()
    この合成名のコンポーネントを、文字列の列挙として取得します。
    Name getPrefix​(int posn)
    コンポーネントがこの合成名のコンポーネントの接頭辞で構成される合成名を作成します。
    Name getSuffix​(int posn)
    コンポーネントがこの合成名のコンポーネントの接尾辞で構成される合成名を作成します。
    int hashCode()
    この合成名のハッシュ・コードを計算します。
    boolean isEmpty()
    この合成名が空かを判定します。
    Object remove​(int posn)
    この合成名からコンポーネントを削除します。
    int size()
    この合成名のコンポーネントの数を取得します。
    boolean startsWith​(Name n)
    合成名がこの合成名の接頭辞であるかが判定されます。
    String toString()
    この合成名の文字列表記を生成します。

    クラス java.lang.Objectで宣言されたメソッド

    finalizegetClassnotifynotifyAllwaitwaitwait
  • コンストラクタの詳細

    • CompositeName

      protected CompositeName​(Enumeration<String> comps)
      'comps'で指定されるコンポーネントを使用して、新しい合成名インスタンスを構築します。 このprotectedメソッドは、CompositeNameのサブクラスで、clone()、getPrefix()、getSuffix()などのメソッドをオーバーライドするときに使用されます。
      パラメータ:
      comps - 新しい合成名のコンポーネントを格納するnull以外の列挙。 各要素のクラスはString。 列挙は要素の抽出に使用される。
    • CompositeName

      public CompositeName​(String n) throws InvalidNameException
      合成名の構文(左から右、スラッシュで区切られる)を使用して、文字列nを構文解析することで、新しい合成名インスタンスを構築します。 合成名の構文は、クラスの説明のときに詳しく説明します。
      パラメータ:
      n - 構文解析するnull以外の文字列。
      例外:
      InvalidNameException - nに無効な合成名の構文がある場合。
    • CompositeName

      public CompositeName()
      新しい空の合成名を構築します。 それらの名前に対してisEmpty()が呼び出されると、trueを返します。
  • メソッドの詳細

    • toString

      public String toString()
      この合成名の文字列表記を生成します。 文字列表記では、合成名の各コンポーネントが列挙され、各コンポーネントがスラッシュ文字で区切られます。 引用とエスケープ文字は、JNDI構文に応じて必要のある場所に適用されます。これについては、クラスの説明で説明します。 空のコンポーネントは、空の文字列で表されます。 このように生成された文字列表記をCompositeNameコンストラクタに引き渡すと、新しい同様の合成名を作成できます。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      この合成名のnull以外の文字列表記。
    • equals

      public boolean equals​(Object obj)
      2つの合成名が等しいかを判定します。 objがnullであるか、または合成名ではない場合は、falseを返します。 一方の各コンポーネントがもう一方の対応するコンポーネントと等しい場合は、2つの合成名は等しくなります。 これは、両方の合成名に同じ数のコンポーネントがあり、各コンポーネントのequals()テストでもう一方の名前の対応するコンポーネントを調べるとtrueが返されることを示しています。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - 比較対象となるnullの可能性があるオブジェクト。
      戻り値:
      objがこの合成名と等しい場合はtrue、そうでない場合はfalse。
      関連項目:
      hashCode()
    • hashCode

      public int hashCode()
      この合成名のハッシュ・コードを計算します。 ハッシュ・コードとは、この合成名の各コンポーネントのハッシュ・コードの集合です。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      この名前のハッシュ・コードを表すint。
      関連項目:
      equals(java.lang.Object)
    • compareTo

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

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

      2つの合成名が等しいとはどのような意味かについては、equals()を参照してください。 2つの合成名が等しい場合は、0を返します。

      合成名の順序付けは、文字列比較の辞書規則に従っています。合成名のすべてのコンポーネントに適用される拡張機能もあります。 その結果、すべてのコンポーネントが指定した順序で、2つのラインアップに適用された辞書規則に従って並べられたようになります。 この合成名が「辞書規則に従って」objより小さい場合は、負の数が返されます。 この合成名が「辞書規則に従って」objより大きい場合は、正の数が返されます。

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

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

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

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

      public Enumeration<String> getAll()
      この合成名のコンポーネントを、文字列の列挙として取得します。 この列挙でこの合成名を更新する影響については、定義されていません。
      定義:
      getAll、インタフェース: Name
      戻り値:
      この合成名のコンポーネントのnull以外の列挙。 列挙された各要素のクラスはString。
    • get

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

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

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

      public boolean startsWith​(Name n)
      合成名がこの合成名の接頭辞であるかが判定されます。 合成名'n'は、getPrefix(n.size())と等しい場合に接頭辞になります。つまり、この合成名は'n'で始まります。 'n'がnullであるか、または合成名ではない場合は、falseが返されます。
      定義:
      startsWith、インタフェース: Name
      パラメータ:
      n - チェックするnullの可能性がある名前。
      戻り値:
      nがCompositeNameで、この合成名の接頭辞である場合はtrue、そうでない場合はfalse。
    • endsWith

      public boolean endsWith​(Name n)
      合成名がこの合成名の接尾辞であるかが判定されます。 複合名'n'は、getSuffix(size()-n.size()に等しい場合はサフィクスです)-- つまり、この合成名は'n'で終わります。 nがnullであるか、または合成名ではない場合は、falseが返されます。
      定義:
      endsWith、インタフェース: Name
      パラメータ:
      n - チェックするnullの可能性がある名前。
      戻り値:
      nがCompositeNameで、この合成名の接尾辞である場合はtrue、そうでない場合はfalse。
    • addAll

      public Name addAll​(Name suffix) throws InvalidNameException
      合成名のコンポーネントを、この合成名の末尾に順に追加します。
      定義:
      addAll、インタフェース: Name
      パラメータ:
      suffix - 追加するnull以外のコンポーネント。
      戻り値:
      新しいCompositeNameではなく、更新されたCompositeName。 nullは不可。
      例外:
      InvalidNameException - 接尾辞が合成名ではない場合。
    • addAll

      public Name addAll​(int posn, Name n) throws InvalidNameException
      合成名のコンポーネントを、この合成名の指定した位置に順に追加します。 最初の新しいコンポーネントのインデックス、またはその後ろにあるこの合成名のコンポーネントは、新しいコンポーネントを取り込むために上に移動(インデックス0から離れる)します。
      定義:
      addAll、インタフェース: Name
      パラメータ:
      n - 追加するnull以外のコンポーネント。
      posn - 新しいコンポーネントを追加する位置を示す、この名前内のインデックス。 範囲は[0,size()]でなければならない。
      戻り値:
      新しいCompositeNameではなく、更新されたCompositeName。 nullは不可。
      例外:
      InvalidNameException - nが合成名ではない場合。
      ArrayIndexOutOfBoundsException - posnが指定された範囲にない場合。
    • add

      public Name add​(String comp) throws InvalidNameException
      単一のコンポーネントをこの合成名の最後に追加します。
      定義:
      add、インタフェース: Name
      パラメータ:
      comp - 追加するnull以外のコンポーネント。
      戻り値:
      新しいCompositeNameではなく、更新されたCompositeName。 nullは不可。
      例外:
      InvalidNameException - 名前の最後へのcompの追加が名前の構文に違反する場合。
    • add

      public Name add​(int posn, String comp) throws InvalidNameException
      単一のコンポーネントを、この合成名の指定した位置に追加します。 新しいコンポーネントのインデックス、またはその後ろにあるこの合成名のコンポーネントは、新しいコンポーネントを取り込むために1つ上に移動(インデックス0から離れる)します。
      定義:
      add、インタフェース: Name
      パラメータ:
      comp - 追加するnull以外のコンポーネント。
      posn - 新しいコンポーネントを追加するインデックス。 範囲は[0,size()]でなければならない。
      戻り値:
      新しいCompositeNameではなく、更新されたCompositeName。 nullは不可。
      例外:
      ArrayIndexOutOfBoundsException - posnが指定された範囲にない場合。
      InvalidNameException - 指定された位置へのcompの追加が名前の構文に違反する場合。
    • remove

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