java.lang.Object
javax.naming.CompositeName
- すべての実装されたインタフェース:
Serializable
,Cloneable
,Comparable<Object>
,Name
このクラスは、合成名を表します。合成名とは、複数の名前空間にまたがる一連のコンポーネントの名前です。 各コンポーネントは、ネーミング・システムの名前空間に由来する文字列名です。 コンポーネントが階層名前空間から生ずる場合、CompoundNameクラスを使用することでその基本部分をさらに構文解析できます。
合成名のコンポーネントには、番号が付けられます。 Nコンポーネントの合成名のインデックス範囲は、0からN未満の範囲で番号が付けられます。 この範囲は、[0,N]と表されます。 もっとも重要なコンポーネントは、インデックス0にあります。 空の合成名にはコンポーネントはありません。
JNDI合成名の構文
JNDIでは、合成名の標準文字列表記が定義されます。 この表記では、各コンポーネントを区切るためのコンポーネント区切り文字(スラッシュ(/))を使用して、左から右に合成名のコンポーネントが連結されます。 JNDI構文では、次のメタキャラクタが定義されます。- エスケープ(バックスラッシュ\)、
- 引用符文字(単一引用符(')および二重引用符("))
- コンポーネント区切り文字(スラッシュ(/))
2つの合成名を比較する場合は、大文字小文字の区別が重要になります。
先行するコンポーネント区切り文字(区切り文字で始まる合成名の文字列)は、先行する空のコンポーネント(空の文字列で構成されるコンポーネント)を表します。 末尾のコンポーネント区切り文字(区切り文字で終わる合成名の文字列)は、末尾の空のコンポーネントを表します。 隣接する複合区切り文字は、空のコンポーネントを表します。
合成名の例
次の表に、合成名の例を示します。 各行は、合成名の文字列形式、および対応する構造形式(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
- 関連項目:
-
コンストラクタのサマリー
修飾子コンストラクタ説明新しい空の合成名を構築します。合成名の構文(左から右、スラッシュで区切られる)を使用して、文字列nを構文解析することで、新しい合成名インスタンスを構築します。protected
CompositeName
(Enumeration<String> comps) 'comps'で指定されるコンポーネントを使用して、新しい合成名インスタンスを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明単一のコンポーネントを、この合成名の指定した位置に追加します。単一のコンポーネントをこの合成名の最後に追加します。合成名のコンポーネントを、この合成名の指定した位置に順に追加します。合成名のコンポーネントを、この合成名の末尾に順に追加します。clone()
この合成名のコピーを生成します。int
CompositeNameと、指定されたObjectの順序を比較します。boolean
合成名がこの合成名の接尾辞であるかが判定されます。boolean
2つの合成名が等しいかを判定します。get
(int posn) この合成名のコンポーネントを取得します。getAll()
この合成名のコンポーネントを、文字列の列挙として取得します。getPrefix
(int posn) コンポーネントがこの合成名のコンポーネントの接頭辞で構成される合成名を作成します。getSuffix
(int posn) コンポーネントがこの合成名のコンポーネントの接尾辞で構成される合成名を作成します。int
hashCode()
この合成名のハッシュ・コードを計算します。boolean
isEmpty()
この合成名が空かを判定します。remove
(int posn) この合成名からコンポーネントを削除します。int
size()
この合成名のコンポーネントの数を取得します。boolean
startsWith
(Name n) 合成名がこの合成名の接頭辞であるかが判定されます。toString()
この合成名の文字列表記を生成します。
-
コンストラクタの詳細
-
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コンストラクタに引き渡すと、新しい同様の合成名を作成できます。 -
equals
public boolean equals(Object obj) 2つの合成名が等しいかを判定します。 objがnullであるか、または合成名ではない場合は、falseを返します。 一方の各コンポーネントがもう一方の対応するコンポーネントと等しい場合は、2つの合成名は等しくなります。 これは、両方の合成名に同じ数のコンポーネントがあり、各コンポーネントのequals()テストでもう一方の名前の対応するコンポーネントを調べるとtrueが返されることを示しています。 -
hashCode
public int hashCode()この合成名のハッシュ・コードを計算します。 ハッシュ・コードとは、この合成名の各コンポーネントのハッシュ・コードの集合です。 -
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ではない場合。- 関連項目:
-
clone
public Object clone()この合成名のコピーを生成します。 この合成名のコンポーネントを変更しても、新しいコピーには影響しません。また逆の場合も同じです。 -
size
public int size()この合成名のコンポーネントの数を取得します。 -
isEmpty
public boolean isEmpty()この合成名が空かを判定します。 コンポーネントがゼロの場合、合成名は空です。 -
getAll
public Enumeration<String> getAll()この合成名のコンポーネントを、文字列の列挙として取得します。 この列挙でこの合成名を更新する影響については、定義されていません。 -
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が返されます。 -
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
- コンポーネントを削除すると、名前の構文に違反する場合。
-