Public メソッド | |
__init__ (key=None, value=None, defaults_map=None, defaults_str=None, num=None, prop=None) | |
コンストラクタ | |
assigmentOperator (prop) | |
代入演算子 | |
__del__ () | |
デストラクタ | |
getName () | |
getValue () | |
getDefaultValue () | |
getLeaf () | |
getRoot () | |
getProperty (key, default=None) | |
指定されたキーを持つプロパティを、プロパティリストから探す。 | |
getDefault (key) | |
指定されたキーに対してデフォルト値を設定する | |
setProperty (key, value=None) | |
Properties に value を key について登録する. | |
setDefault (key, value) | |
Properties にデフォルト value を key について登録する. | |
setDefaults (defaults, num=None) | |
Properties にデフォルト値をまとめて登録する. | |
list (out) | |
指定された出力ストリームに、プロパティリストを出力する | |
load (inStream) | |
入力ストリームからキーと要素が対になったプロパティリストを読み込む | |
save (out, header) | |
プロパティリストを指定されたストリームに保存する | |
store (out, header) | |
プロパティリストを出力ストリームへ保存する | |
propertyNames () | |
プロパティのキーのリストを vector で返す | |
size () | |
プロパティの数を取得する | |
getNode (key) | |
ノードを取得する | |
createNode (key) | |
removeNode (leaf_name) | |
ノードを切断する | |
hasKey (key) | |
子ノードにkeyがあるかどうか | |
clear () | |
子ノードを全て削除する | |
mergeProperties (prop) | |
Propertyをマージする
C++版 Properties& Properties::operator<<(const Properties& prop)の実装. | |
splitKeyValue (_str, key, value) | |
split (_str, delim, value) | |
_getNode (keys, index, curr) | |
_propertiyNames (names, curr_name, curr) | |
_store (out, curr_name, curr) | |
indent (index) | |
_dump (out, curr, index) | |
__str__ () |
プロパティリストには、その「デフォルト値」として別のプロパティリストを持つ ことができる。元のプロパティリストでプロパティキーが見つからないと、この 2番目のプロパティリストが検索される。
プロパティの取得には getProperty、プロパティのセットには setProperty と いったメソッドを使用することが推奨される。
プロパティをストリームに保存するとき、またはストリームからロードするときに、 ISO 8859-1 文字エンコーディングが使用される。このエンコーディングに直接表示 できない文字は、扱うことができない。
このクラスは、Java の Properties クラス (java.util.Properties) とほぼ同様の メソッドを持つ。また、入出力されるファイルは Java の Properties クラスが 出力するものと互換性があるが、Unicode を含むものは扱うことができない。
|
デストラクタ
|
|
コンストラクタ (1) Properties(key = None, value = None) key と value のみを与えて Property のルートノードを作成する。 値は全てデフォルト値として設定される。 (2) Properties(defaults=None) std::string の std::map をデフォルト値にもつPropertiesを作成する。 値は全てデフォルト値として設定される。 (3) Properties(defaults=None, num = LONG_MAX) 指定されたデフォルト値を持つ空のプロパティリストを作成する。 値は全てデフォルト値として設定される。 デフォルト値は char* の配列により与えられ、key と value の対になっており、 リストの終端は配列の数を表す引数 num か、空文字の key で与えらられなければ ならない。 以下に例を示す。 const char* defaults = { "key1", "value1", "key2", "value2", "key3", "value3", "key4", "value4", "key5", "value5", "" }; Properties p(defaults); もしくは Properties p(defaults, 10); (4) Properties(prop=None) 引数に与えられた Properties のキー、値およびデフォルト値が 全てそのままコピーされる。 |
|
friend std::ostream& operator<<(std::ostream& lhs, const Properties& rhs); の代わりに、print objにて呼び出し可能としている。 |
|
|
|
|
|
|
|
|
|
代入演算子 左辺値の Properties のキー、値およびデフォルト値は全て削除され、 右辺値の Properties のキー、値およびデフォルト値が全てそのまま コピーされる。 |
|
子ノードを全て削除する
|
|
|
|
指定されたキーに対してデフォルト値を設定する
|
|
|
|
|
|
|
|
ノードを取得する
|
|
指定されたキーを持つプロパティを、プロパティリストから探す。 指定されたキーを持つプロパティを、プロパティリストから探す。 そのキーがプロパティリストにないと、デフォルトのプロパティリスト、 さらにそのデフォルト値が繰り返し調べられる。 そのプロパティが見つからない場合は、デフォルト値の引数が返される。
|
|
|
|
|
|
子ノードにkeyがあるかどうか
|
|
|
|
指定された出力ストリームに、プロパティリストを出力する 指定された出力ストリームに、プロパティリストを出力する。 このメソッドは主にデバッグに用いられる。
|
|
入力ストリームからキーと要素が対になったプロパティリストを読み込む
入力ストリームからキーと要素が対になったプロパティリストを読み込む。 ストリームは、ISO 8859-1 文字エンコーディングを使用しているとみなされる。 各プロパティは、入力ストリームに行単位で登録されているものとみなされ、 各行は行区切り文字 ( 空白文字だけの行、または最初の非空白文字が ASCII 文字 または ! である 行は無視される。つまり、 または ! はコメント行を示す。 空白行またはコメント行以外のすべての行は、テーブルに追加されるプロパティ を記述する。ただし、行の終わりが \ の場合は、次の行があれば継続行として 扱われます (下記を参照)。 キーは、最初の非空白文字から、最初の ASCII 文字 =、:、または空白文字の直前までの、行内のすべての文字から構成される。
キーの終わりを示す文字は、前に \ を付けることによりキーに含めることも できる。キーの後ろの空白はすべてスキップされる。 キーの後ろの最初の非空白文字が = または : である場合は、これらのキーは 無視され、そのあとの空白文字もすべてスキップされる。 行内のそれ以外の文字はすべて、関連した要素文字列の一部となる。 要素文字列内では、ASCII エスケープシーケンス 、 たとえば、次の 4 行はそれぞれキー Truth と、関連した要素値 Beauty を表す。
Truth = Beauty また、次の 3 行は 1 つのプロパティを表す。
fruits apple, banana, pear, \
cheeses
|
|
Propertyをマージする C++版 Properties& Properties::operator<<(const Properties& prop)の実装.
|
|
プロパティのキーのリストを vector で返す メインプロパティリストに同じ名前のキーが見つからない場合は、デフォルトの プロパティリストにある個別のキーを含む、このプロパティリストにあるすべて のキーのリストを返します。
|
|
ノードを切断する
|
|
プロパティリストを指定されたストリームに保存する 推奨されていません。プロパティリストの保存方法としては、 store(ostream out, string header) メソッドの使用が推奨される。 このメソッドは Java Properties との互換性のために定義されている。
|
|
Properties にデフォルト value を key について登録する.
|
|
Properties にデフォルト値をまとめて登録する.
|
|
Properties に value を key について登録する. Properties に value を key について登録する。 すでに key に対する値を持っている場合、戻り値に古い値を返す。
|
|
プロパティの数を取得する
|
|
|
|
|
|
プロパティリストを出力ストリームへ保存する Properties テーブル内のプロパティリスト (キーと要素のペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで 出力ストリームに書き込みます。 Properties テーブル内のプロパティリスト (キーと要素のペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで 出力ストリームに書き込みます。ストリームは、ISO 8859-1 文字 エンコーディングを使用して書き込まれます。 Properties テーブル (存在する場合) のデフォルトテーブルからの プロパティは、このメソッドによっては書き込まれません。 header 引数が null でない場合は、ASCII 文字の 、header の文字列、 および行区切り文字が最初に出力ストリームに書き込まれます。このため、 header は識別コメントとして使うことができます。 次に、ASCII 文字の 、現在の日時 (Date の toString メソッドによって 現在時刻が生成されるのと同様)、および Writer によって生成される行区切り からなるコメント行が書き込まれます。
続いて、Properties テーブル内のすべてのエントリが 1 行ずつ書き出されます。 各エントリのキー文字列、ASCII 文字の =、関連した要素文字列が書き込まれま す。要素文字列の各文字は、エスケープシーケンスとして描画する必要があるか どうか確認されます。ASCII 文字の \、タブ、改行、および復帰はそれぞれ \、 、 エントリが書き込まれたあとで、出力ストリームがフラッシュされます。 出力ストリームはこのメソッドから復帰したあとも開いたままです。 |