- すべての実装されたインタフェース:
Serializable
,Cloneable
,Comparable<Object>
,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"の"=")
- 引用符またはエスケープのない文字列では、区切り文字のインスタンスによって2つの基本名が区切られます。 各基本名は、コンポーネントと呼ばれます。
- 直前に(左側に)エスケープがある場合、区切り文字、引用符、またはエスケープはエスケープされます。
- 引用符のセットが2つある場合は、特定の開始引用符と、対応する終了引用符が一致している必要があります。
- コンポーネントに先行する、エスケープされていない開始引用符は、コンポーネントの末尾にある、エスケープされていない終了引用符と一致している必要があります。 このように引用されたコンポーネントは、引用されたコンポーネントと呼ばれます。 開始引用符と終了引用符を削除し、また次のリストに示す引用されたコンポーネントに関連する規則の1つが適用されない場合、中間の文字を通常の文字とみなすことで、引用されたコンポーネントは構文解析されます。
- 引用されていないコンポーネントに埋め込まれた引用符は、通常の文字列とみなされ、一致している必要はありません。
- エスケープされる、またはエスケープされていない引用符の間に表示される区切り文字は、区切り文字ではなく通常の文字とみなされます。
- 引用されたコンポーネント内のエスケープ文字列は、その後ろに対応する終了引用符文字列がある場合のみ、エスケープとして機能します。 これは、引用されたコンポーネントにエスケープされた引用符を埋め込むために使用されます。
- エスケープされたエスケープ文字列は、エスケープ文字列とはみなされません。
- 前にメタ文字列(引用符または区切り文字)がなく、コンポーネントの最後にないエスケープ文字列は、通常の文字列とみなされます。
- 先行する区切り文字(区切り文字で始まる複合名の文字列)は、先行する空の基本コンポーネント(空の文字列で構成される)を表します。 末尾の区切り文字(区切り文字で終わる複合名の文字列)は、末尾の空の基本コンポーネントを表します。 隣接する区切り文字は、空の基本コンポーネントを表します。
複合名の文字列形式は、前述の構文に従います。 複合名のコンポーネントが文字列表記に変換される場合は、前述の予約された構文規則が適用されます(埋め込まれた区切り文字はエスケープまたは引用されるなど)。そのため、同じ文字列が構文解析される場合、元の複合名と同じコンポーネントが作成されます。
マルチスレッド・アクセス
CompoundName
インスタンスは、並行マルチスレッド・アクセスに対しては同期化されません。 複数のスレッドからCompoundName
にアクセスして変更する場合は、オブジェクトをロックする必要があります。 - 導入されたバージョン:
- 1.3
- 関連項目:
-
フィールドのサマリー
-
コンストラクタのサマリー
修飾子コンストラクタ説明CompoundName
(String n, Properties syntax) 指定した構文プロパティで指定される構文を使用して、文字列nを構文解析することで、新しい複合名インスタンスを構築します。protected
CompoundName
(Enumeration<String> comps, Properties syntax) compsに指定されたコンポーネントとsyntaxを使用して、新しい複合名インスタンスを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明単一のコンポーネントを、この複合名の指定した位置に追加します。単一のコンポーネントをこの複合名の最後に追加します。複合名のコンポーネントを、この複合名の指定した位置に順に追加します。複合名のコンポーネントを、この複合名の末尾に順に追加します。clone()
この複合名のコピーを作成します。int
CompoundNameと、指定されたObjectの順序を比較します。boolean
複合名がこの複合名の接尾辞であるかどうかが判定されます。boolean
objがこの複合名と構文的に等しいかを判定します。get
(int posn) この複合名のコンポーネントを取得します。getAll()
この複合名のコンポーネントを、文字列の列挙として取得します。getPrefix
(int posn) コンポーネントがこの複合名のコンポーネントの接頭辞で構成される複合名を作成します。getSuffix
(int posn) コンポーネントがこの複合名のコンポーネントの接尾辞で構成される複合名を作成します。int
hashCode()
この複合名のハッシュ・コードを計算します。boolean
isEmpty()
この複合名が空かどうかを判定します。remove
(int posn) この複合名からコンポーネントを削除します。int
size()
この複合名のコンポーネント数を取得します。boolean
startsWith
(Name n) 複合名がこの複合名の接頭辞であるかどうかが判定されます。toString()
複合名の構文規則を使用する、この複合名の文字列表記を生成します。
-
フィールド詳細
-
mySyntax
protected transient Properties mySyntaxこの複合名の構文プロパティです。 このフィールドはコンストラクタによって初期化され、nullにすることはできません。 このフィールドはサブクラスによって読込み専用変数とみなされる必要があります。 mySyntaxを変更する場合は、コンストラクタ内で変更し、複合名がインスタンス化されたあとで変更しないでください。
-
-
コンストラクタの詳細
-
CompoundName
protected CompoundName(Enumeration<String> comps, Properties syntax) compsに指定されたコンポーネントとsyntaxを使用して、新しい複合名インスタンスを構築します。 この保護されたメソッドは、CompoundNameのサブクラスで、clone()、getPrefix()、getSuffix()などのメソッドをオーバーライドするときに使用されます。- パラメータ:
comps
- 追加するコンポーネントのnull以外の列挙。 列挙された各要素のクラスはString。 列挙は要素の抽出に使用される。syntax
- この複合名の構文を指定するnull以外のプロパティ。 プロパティの内容は、クラスの説明を参照。
-
CompoundName
public CompoundName(String n, Properties syntax) throws InvalidNameException 指定した構文プロパティで指定される構文を使用して、文字列nを構文解析することで、新しい複合名インスタンスを構築します。- パラメータ:
n
- 構文解析するnull以外の文字列。syntax
- この複合名の構文を指定するnull以外のプロパティのリスト。 プロパティの内容は、クラスの説明を参照。- 例外:
InvalidNameException
-「n」がsyntax
で指定される構文に違反する場合。
-
-
メソッドの詳細
-
toString
public String toString()複合名の構文規則を使用する、この複合名の文字列表記を生成します。 構文規則は、クラスの説明で説明します。 空のコンポーネントは、空の文字列で表されます。 このように生成された文字列表記を、同じ構文プロパティを持つCompoundNameコンストラクタに引き渡すと、新しい同様の複合名を作成できます。 -
equals
public boolean equals(Object obj) objがこの複合名と構文的に等しいかを判定します。 objがnullであるか、またはCompoundNameではない場合、falseが返されます。 一方の各コンポーネントがもう一方の対応するコンポーネントと「等しい」場合、2つの複合名は等しくなります。等しいかどうかは、この複合名の構文によっても定義されます。 CompoundNameのデフォルトの実装では、2つのコンポーネントが等しいかどうかを比較するときに、構文プロパティjndi.syntax.ignorecaseおよびjndi.syntax.trimblanksが使用されます。 大文字と小文字が区別されない場合、同じ文字のシーケンスを持ち、大文字と小文字が異なる2つの文字列は等しいとみなされます。 空白が削除される場合は、比較のために最初の空白と末尾の空白は無視されます。
2つの複合名には、同じ数のコンポーネントが必要です。
実装にあたってのノート: 現在、2つの複合名の構文プロパティが等しいかどうかは比較されていません。 今後比較される可能性があります。
-
hashCode
public int hashCode()この複合名のハッシュ・コードを計算します。 ハッシュ・コードとは、この複合名の各コンポーネントの標準化形式ハッシュ・コードの集合です。 各コンポーネントは、ハッシュ・コードが計算される前に、複合名の構文に従って標準化されます。 たとえば、大文字と小文字を区別する名前の場合、大文字形式の名前のハッシュ・コードは、小文字の名前と同じです。 -
clone
public Object clone()この複合名のコピーを作成します。 この複合名のコンポーネントを変更しても、新しいコピーには影響しません。また逆の場合も同じです。 クローンとこの複合名では、同じ構文を共有します。 -
compareTo
public int compareTo(Object obj) CompoundNameと、指定されたObjectの順序を比較します。 このNameが指定されたObjectより小さい場合は負の整数、等しい場合は0、大きい場合は正の整数をそれぞれ返します。objがnull、またはCompoundNameのインスタンスではない場合は、ClassCastExceptionがスローされます。
2つの複合名が等しいとはどのような意味かについては、equals()を参照してください。 2つの複合名が等しい場合は、0を返します。
複合名の順序付けは、複合名の構文によります。 デフォルトでは、文字列比較の辞書規則に準拠します。この規則は、複合名に含まれるすべてのコンポーネントに適用されます。ただし、コンポーネントが比較されるときは、equals()の場合と同様に、jndi.syntax.ignorecaseプロパティとjndi.syntax.trimblanksプロパティが適用されます。 この複合名が「辞書規則に従って」objより小さい場合は、負の数が返されます。 この複合名が「辞書規則に従って」objより大きい場合は、正の数が返されます。
実装にあたってのノート: 現在、2つの複合名の構文プロパティが等しいかどうかは、順序の確認時には比較されていません。 今後比較される可能性があります。
- 定義:
compareTo
、インタフェース:Comparable<Object>
- 定義:
compareTo
、インタフェース:Name
- パラメータ:
obj
- 比較対象となるnull以外のオブジェクト。- 戻り値:
- このNameが指定されたObjectより小さい場合は負の整数、等しい場合は0、大きい場合は正の整数。
- 例外:
ClassCastException
- objがCompoundNameではない場合。- 関連項目:
-
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()]でなければならない。- 戻り値:
- インデックスのコンポーネント。
- 例外:
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が返されます。実装にあたってのノート: 現在、nの構文プロパティは比較時に使用されていません。 今後比較される可能性があります。
- 定義:
startsWith
、インタフェース:Name
- パラメータ:
n
- チェックするnullの可能性がある複合名。- 戻り値:
- nがCompoundNameで、この複合名の接頭辞である場合はtrue、そうでない場合はfalse。
-
endsWith
public boolean endsWith(Name n) 複合名がこの複合名の接尾辞であるかどうかが判定されます。 コンパウンド名'n'は、getSuffix(size()-n.size()に等しい場合はサフィクスです。つまり、このコンパウンド名は'n'で終わります。 nがnullであるか、または複合名ではない場合は、falseが返されます。実装にあたってのノート: 現在、nの構文プロパティは比較時に使用されていません。 今後比較される可能性があります。
-
addAll
public Name addAll(Name suffix) throws InvalidNameException 複合名のコンポーネントを、この複合名の末尾に順に追加します。実装にあたってのノート: 現在、接尾辞の構文プロパティは使用または確認されていません。 今後比較される可能性があります。
- 定義:
addAll
、インタフェース:Name
- パラメータ:
suffix
- 追加するnull以外のコンポーネント。- 戻り値:
- 新しいCompoundNameではなく、更新されたCompoundName。 nullは不可。
- 例外:
InvalidNameException
- 接尾辞が複合名ではない、またはコンポーネントの追加がこの複合名の構文に違反する場合(コンポーネントの数を超えるなど)。
-
addAll
public Name addAll(int posn, Name n) throws InvalidNameException 複合名のコンポーネントを、この複合名の指定した位置に順に追加します。 最初の新しいコンポーネントのインデックス、またはその後ろにあるこの複合名のコンポーネントは上(インデックス0から離れる)に移動され、新しいコンポーネントが調整されます。実装にあたってのノート: 現在、接尾辞の構文プロパティは使用または確認されていません。 今後比較される可能性があります。
- 定義:
addAll
、インタフェース:Name
- パラメータ:
n
- 追加するnull以外のコンポーネント。posn
- 新しいコンポーネントを追加する位置を示す、この名前内のインデックス。 範囲は[0,size()]でなければならない。- 戻り値:
- 新しいCompoundNameではなく、更新されたCompoundName。 nullは不可。
- 例外:
ArrayIndexOutOfBoundsException
- posnが指定された範囲にない場合。InvalidNameException
- nが複合名ではない場合、またはコンポーネントの追加がこの複合名の構文に違反する場合(コンポーネントの数を超えるなど)。
-
add
public Name add(String comp) throws InvalidNameException 単一のコンポーネントをこの複合名の最後に追加します。- 定義:
add
、インタフェース:Name
- パラメータ:
comp
- 追加するnull以外のコンポーネント。- 戻り値:
- 新しいCompoundNameではなく、更新されたCompoundName。 nullは不可。
- 例外:
InvalidNameException
- 名前の最後にコンポーネントを追加すると、複合名の構文に違反する場合。
-
add
public Name add(int posn, String comp) throws InvalidNameException 単一のコンポーネントを、この複合名の指定した位置に追加します。 新しいコンポーネントのインデックス、またはその後ろにあるこの複合名のコンポーネントは1つ上(インデックス0から離れる)に移動され、新しいコンポーネントが調整されます。- 定義:
add
、インタフェース:Name
- パラメータ:
comp
- 追加するnull以外のコンポーネント。posn
- 新しいコンポーネントを追加するインデックス。 範囲は[0,size()]でなければならない。- 戻り値:
- 新しいCompoundNameではなく、更新されたCompoundName。 nullは不可。
- 例外:
ArrayIndexOutOfBoundsException
- posnが指定された範囲にない場合。InvalidNameException
- 指定した位置にコンポーネントを追加すると複合名の構文に違反する場合。
-
remove
public Object remove(int posn) throws InvalidNameException この複合名からコンポーネントを削除します。 位置'posn'にある複合名のコンポーネントが削除され、'posn'より大きいインデックスのコンポーネントは、1つ下(インデックス0の方に)に移動されます。- 定義:
remove
、インタフェース:Name
- パラメータ:
posn
- 削除するコンポーネントのインデックス。 範囲は[0,size()]でなければならない。- 戻り値:
- 削除されたコンポーネント(String)。
- 例外:
ArrayIndexOutOfBoundsException
- 位置が指定した範囲にない場合(複合名が空の場合を含む)。InvalidNameException
- コンポーネントを削除すると、複合名の構文に違反する場合。
-