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

クラスCompoundName

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

public class CompoundName extends Object implements Name
このクラスは複合名を表します。複合名とは、階層名前空間から取得される名前です。 複合名の各コンポーネントは、不可分な名前です。

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

複合名の構文

複合名の構文は、プロパティのセットによって指定されます。
jndi.syntax.direction
構文解析の方向("right_to_left"、"left_to_right"、"flat")。 指定しない場合のデフォルトは、"flat"です。これは、名前空間が階層構造のない平坦であることを示します。
jndi.syntax.separator
基本名のコンポーネントの区切り文字。 方向がflat以外の場合に必要です。
jndi.syntax.ignorecase
このプロパティが存在する場合、trueは、名前のコンポーネントを比較するときに大文字と小文字が区別されないことを示します。 値がtrueではない、またはプロパティが存在しない場合は、名前のコンポーネントを比較するときに大文字と小文字が区別されます。
jndi.syntax.escape
このプロパティが存在する場合は、区切り文字、エスケープ、および引用符をオーバーライドするエスケープ文字列が指定されます。
jndi.syntax.beginquote
このプロパティが存在する場合は、引用された文字列の始まりを区切る文字列が指定されます。
jndi.syntax.endquote
引用された文字列の終わりを区切る文字列。 このプロパティが存在する場合は、引用された文字列の終わりを区切る文字列が指定されます。 このプロパティが存在しない場合は、終了引用符としてsyntax.beginquoteが使用されます。
jndi.syntax.beginquote2
開始/終了引用符のセットの代替。
jndi.syntax.endquote2
開始/終了引用符のセットの代替。
jndi.syntax.trimblanks
このプロパティが存在する場合、trueは、比較のために名前のコンポーネントの先頭と末尾の空白が切り取られることを示します。 値がtrueではない、またはこのプロパティが存在しない場合は、空白が重要になります。
jndi.syntax.separator.ava
このプロパティが存在する場合は、複数の属性または値のペアを指定するときに、属性アサーション値を区切る文字列が指定されます。(age=65,gender=maleの「,」など)。
jndi.syntax.separator.typeval
存在する場合は、属性と値(たとえば"age=65"の"=")を区切る文字列を指定
上記のプロパティは、次の規則に従って解釈されます。
  1. 引用符またはエスケープのない文字列では、区切り文字のインスタンスによって2つの基本名が区切られます。 各基本名は、コンポーネントと呼ばれます。
  2. 直前に(左側に)エスケープがある場合、区切り文字、引用符、またはエスケープはエスケープされます。
  3. 引用符のセットが2つある場合は、特定の開始引用符と、対応する終了引用符が一致している必要があります。
  4. コンポーネントに先行する、エスケープされていない開始引用符は、コンポーネントの末尾にある、エスケープされていない終了引用符と一致している必要があります。 このように引用されたコンポーネントは、引用されたコンポーネントと呼ばれます。 開始引用符と終了引用符を削除し、また次のリストに示す引用されたコンポーネントに関連する規則の1つが適用されない場合、中間の文字を通常の文字とみなすことで、引用されたコンポーネントは構文解析されます。
  5. 引用されていないコンポーネントに埋め込まれた引用符は、通常の文字列とみなされ、一致している必要はありません。
  6. エスケープされる、またはエスケープされていない引用符の間に表示される区切り文字は、区切り文字ではなく通常の文字とみなされます。
  7. 引用されたコンポーネント内のエスケープ文字列は、その後ろに対応する終了引用符文字列がある場合のみ、エスケープとして機能します。 これは、引用されたコンポーネントにエスケープされた引用符を埋め込むために使用されます。
  8. エスケープされたエスケープ文字列は、エスケープ文字列とはみなされません。
  9. 前にメタ文字列(引用符または区切り文字)がなく、コンポーネントの最後にないエスケープ文字列は、通常の文字列とみなされます。
  10. 先行する区切り文字(区切り文字で始まる複合名の文字列)は、先行する空の基本コンポーネント(空の文字列で構成される)を表します。 末尾の区切り文字(区切り文字で終わる複合名の文字列)は、末尾の空の基本コンポーネントを表します。 隣接する区切り文字は、空の基本コンポーネントを表します。

複合名の文字列形式は、前述の構文に従います。 複合名のコンポーネントが文字列表記に変換される場合は、前述の予約された構文規則が適用されます(埋め込まれた区切り文字はエスケープまたは引用されるなど)。そのため、同じ文字列が構文解析される場合、元の複合名と同じコンポーネントが作成されます。

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

CompoundNameインスタンスは、同時マルチスレッド・アクセスに対して同期されません。 複数のスレッドがCompoundNameにアクセスして変更しようとすると、オブジェクトがロックされます。
導入されたバージョン:
1.3
関連項目: