クラス OpenRTM_aist.Properties.Properties

プロパティセットを表現するクラス [詳細]

すべてのメンバ一覧

Public メソッド

def __init__
 コンストラクタ
def assigmentOperator
 代入演算子
def __del__
 デストラクタ
def getName
 Name の取得.
def getValue
 値の取得
def getDefaultValue
 デフォルト値の取得
def getLeaf
 子要素の取得
def getRoot
 ルート要素の取得
def getProperty
 指定されたキーを持つプロパティを、プロパティリストから探す
def getDefault
 指定されたキーに対してデフォルト値を取得する
def setProperty
 Properties に value を key について登録する.
def setDefault
 デフォルト値を登録する
def setDefaults
 Properties にデフォルト値をまとめて登録する.
def list
 指定された出力ストリームに、プロパティリストを出力する
def load
 入力ストリームからキーと要素が対になったプロパティリストを読み込む
def save
 プロパティリストを指定されたストリームに保存する
def store
 プロパティリストを出力ストリームへ保存する
def propertyNames
 プロパティのキーのリストを vector で返す
def size
 プロパティの数を取得する
def findNode
 ノードを検索するProperties* const Properties.findNode(const std.string& key) const
def getNode
 ノードを取得する
def createNode
 新規ノードを生成する
def removeNode
 ノードを削除する
def hasKey
 子ノードにkeyがあるかどうか
def clear
 子ノードを全て削除する
def mergeProperties
 Propertyをマージする.
def splitKeyValue
 文字列をキーと値のペアに分割する
def split
 文字列を分割する
def indent
 インデントを生成する
def __str__
 プロパティの内容を出力する

説明

プロパティセットを表現するクラス

Properties クラスは、不変のプロパティセットを表す。 Properties をストリーム に保管したり、ストリームからロードしたりすることができる。 プロパティリストの各キー、およびそれに対応する値は文字列となっている。

プロパティリストには、その「デフォルト値」として別のプロパティリストを持つ ことができる。元のプロパティリストでプロパティキーが見つからないと、この 2番目のプロパティリストが検索される。

プロパティの取得には getProperty() 、プロパティのセットには setProperty() と いったメソッドを使用することが推奨される。

プロパティをストリームに保存するとき、またはストリームからロードするとき に、ISO 8859-1 文字エンコーディングが使用される。このエンコーディングに 直接表示できない文字は、扱うことができない。

このクラスは、Java の Properties クラス (java.util.Properties) とほぼ同様の メソッドを持つ。また、入出力されるファイルは Java の Properties クラスが 出力するものと互換性があるが、Unicode を含むものは扱うことができない。

から:
0.4.0

メソッド

def OpenRTM_aist.Properties.Properties.__del__ (   self  ) 

デストラクタ

引数:
self 
def OpenRTM_aist.Properties.Properties.__init__ (   self,
  key = None,
  value = None,
  defaults_map = None,
  defaults_str = None,
  num = None,
  prop = None 
)

コンストラクタ

以下の順に引数をチェックし、インスタンスの生成を行う。

引数 prop に値が設定されている場合、 引数に与えられた Properties のキー、値およびデフォルト値が 全てそのままコピーされる。

引数 key に値が設定されている場合、 key と value のみを与えて Property のルートノードを作成する。 値は全てデフォルト値として設定される。

引数 defaults_map に値が設定されている場合、 defaults_map に設定された内容をデフォルト値にもつ Properties を作成する。 値は全てデフォルト値として設定される。

引数 defaults_str に値が設定されている場合、 指定されたデフォルト値を持つ空のプロパティリストを作成する。 値は全てデフォルト値として設定される。 デフォルト値は 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);
 
引数:
self 
key プロパティのキー(デフォルト値:None)
value プロパティの値(デフォルト値:None)
defaults_map デフォルト値として指定されるmap(デフォルト値:None)
defaults_str デフォルト値を指定する配列(デフォルト値:None)
num デフォルト値を設定する要素数(デフォルト値:None)
prop デフォルト値として指定されるproperty(デフォルト値:None)
def OpenRTM_aist.Properties.Properties.__str__ (   self  ) 

プロパティの内容を出力する

プロパティに設定された内容を出力する。
friend std.ostream& operator<<(std.ostream& lhs, const Properties& rhs); の代わりに、print objにて呼び出し可能とするためのメソッド。

引数:
self 
戻り値:
設定プロパティ文字列表示
def OpenRTM_aist.Properties.Properties.assigmentOperator (   self,
  prop 
)

代入演算子

左辺値の Properties のキー、値およびデフォルト値は全て削除され、 右辺値の Properties のキー、値およびデフォルト値が全てそのまま コピーされる。

引数:
self 
prop OpenRTM_aist.Properties
def OpenRTM_aist.Properties.Properties.clear (   self  ) 

子ノードを全て削除する

引数:
self 
def OpenRTM_aist.Properties.Properties.createNode (   self,
  key 
)

新規ノードを生成する

指定したキーを持つ新規ノードを生成する。 既に同一キーを持つノードが登録済みの場合にはエラーを返す。

引数:
self 
key 新規ノードのキー
戻り値:
新規ノード生成結果 指定したキーを持つノードが既に存在する場合にはfalse
def OpenRTM_aist.Properties.Properties.getDefault (   self,
  key 
)

指定されたキーに対してデフォルト値を取得する

指定されたキーを持つプロパティのデフォルト値を返す。 指定されたキーを持つプロパティが存在しない場合には空文字を返す。

引数:
self 
key プロパティキー
戻り値:
指定されたキー値を持つプロパティのデフォルト値
def OpenRTM_aist.Properties.Properties.getDefaultValue (   self  ) 

デフォルト値の取得

プロパティのデフォルト値を取得する。

引数:
self 
戻り値:
プロパティデフォルト値
def OpenRTM_aist.Properties.Properties.getLeaf (   self  ) 

子要素の取得

プロパティの子要素を取得する。

引数:
self 
戻り値:
子要素
def OpenRTM_aist.Properties.Properties.getName (   self  ) 

Name の取得.

プロパティの名称を取得する。

引数:
self 
戻り値:
プロパティ名
def OpenRTM_aist.Properties.Properties.getNode (   self,
  key 
)

ノードを取得する

指定したキーを持つノードを取得する。

引数:
self 
key 取得対象ノードのキー
戻り値:
対象ノード
def OpenRTM_aist.Properties.Properties.getProperty (   self,
  key,
  default = None 
)

指定されたキーを持つプロパティを、プロパティリストから探す

指定されたキーを持つプロパティを、プロパティリストから探す。 そのキーがプロパティリストにない場合は、デフォルト値の引数が返される。

引数:
self 
key プロパティキー
default デフォルト値(デフォルト値:None)
戻り値:
指定されたキー値を持つこのプロパティリストの値
def OpenRTM_aist.Properties.Properties.getRoot (   self  ) 

ルート要素の取得

プロパティのルート要素を取得する。

引数:
self 
戻り値:
ルート要素
def OpenRTM_aist.Properties.Properties.getValue (   self  ) 

値の取得

プロパティの値を取得する。

引数:
self 
戻り値:
プロパティ値
def OpenRTM_aist.Properties.Properties.hasKey (   self,
  key 
)

子ノードにkeyがあるかどうか

指定したキーを持つ子ノードが存在するかどうか確認する。 存在する場合、子ノードを返す。

引数:
self 
key 確認対象のキー
戻り値:
子ノード
def OpenRTM_aist.Properties.Properties.indent (   self,
  index 
)

インデントを生成する

指定された数字に従って生成したインデントを返す。 返されるインデントは、指定数字×2つの空白。

引数:
self 
index インデント数の指定
戻り値:
生成されたインデント
def OpenRTM_aist.Properties.Properties.list (   self,
  out 
)

指定された出力ストリームに、プロパティリストを出力する

指定された出力ストリームに、プロパティリストを出力する。 このメソッドは主にデバッグに用いられる。

引数:
self 
out 出力ストリーム
def OpenRTM_aist.Properties.Properties.load (   self,
  inStream 
)

入力ストリームからキーと要素が対になったプロパティリストを読み込む

入力ストリームからキーと要素が対になったプロパティリストを読み込む。 ストリームは、ISO 8859-1 文字エンコーディングを使用しているとみなされる。 各プロパティは、入力ストリームに行単位で登録されているものとみなされ、 各行は行区切り文字 (\n、\r、または \r\n) で終わる。 入力ストリームから読み込んだ行は、入力ストリームでファイルの終わりに 達するまで処理される。

空白文字だけの行、または最初の非空白文字が ASCII 文字 # または ! である 行は無視される。つまり、# または ! はコメント行を示す。

空白行またはコメント行以外のすべての行は、テーブルに追加されるプロパティ を記述する。ただし、行の終わりが \ の場合は、次の行があれば継続行として 扱われる (下記を参照)。 キーは、最初の非空白文字から、最初の ASCII 文字 =、:、または空白文字の直前までの、行内のすべての文字から構成される。

キーの終わりを示す文字は、前に \ を付けることによりキーに含めることも できる。キーの後ろの空白はすべてスキップされる。 キーの後ろの最初の非空白文字が = または : である場合は、これらのキーは 無視され、そのあとの空白文字もすべてスキップされる。 行内のそれ以外の文字はすべて、関連した要素文字列の一部となる。 要素文字列内では、ASCII エスケープシーケンス \t、\n、\r、\\、\"、 \'、\ (円記号とスペース)、および \uxxxx は認識され、単独の文字に変換 される。 また、行の最後の文字が \ である場合は、次の行は現在の行の継続として 扱われる。その場合、\ と行区切り文字が破棄され、継続行の先頭に空白が あればそれもすべて破棄され、要素文字列の一部にはならない。

たとえば、次の 4 行はそれぞれキー Truth と関連した要素値 Beauty を表す。

Truth = Beauty
Truth:Beauty
Truth\t\t\t:Beauty

また、次の 3 行は 1 つのプロパティを表す。

fruits\t\t\t\tapple, banana, pear, \
cantaloupe, watermelon, \
kiwi, mango
キーは fruits で、次の要素に関連付けれられる。 "apple, banana, pear, cantaloupe, watermelon, kiwi, mango" 最終的な結果でコンマのあとに必ずスペースが表示されるように、 各 \ の前にスペースがある。行の終わりを示す \ と、継続行の先頭にある 空白は破棄され、他の文字に置換されない。 また、次の 3 番目の例では、キーが cheeses で、関連した要素が空の文字列 であることを表す。

cheeses
キーは、cheeses で、関連要素は空の文字列であることを指定している。

引数:
self 
inStream 入力ストリーム
def OpenRTM_aist.Properties.Properties.mergeProperties (   self,
  prop 
)

Propertyをマージする.

現在のプロパティに設定したプロパティをマージする。

引数:
self 
prop マージするプロパティ
戻り値:
プロパティマージ結果
def OpenRTM_aist.Properties.Properties.propertyNames (   self  ) 

プロパティのキーのリストを vector で返す

メインプロパティリストに同じ名前のキーが見つからない場合は、デフォルトの プロパティリストにある個別のキーを含む、このプロパティリストにあるすべて のキーのリストを返す。

引数:
self 
戻り値:
プロパティリストにあるすべてのキーのリスト。 デフォルトのプロパティリストにあるキーを含む
def OpenRTM_aist.Properties.Properties.removeNode (   self,
  leaf_name 
)

ノードを削除する

指定した名称を持つプロパティを削除する。 削除したプロパティを返す。

引数:
self 
leaf_name 削除対象プロパティ名称
戻り値:
削除したプロパティ
def OpenRTM_aist.Properties.Properties.save (   self,
  out,
  header 
)

プロパティリストを指定されたストリームに保存する

プロパティリストを指定されたストリームに保存する。 このメソッドは Java Properties との互換性のために定義されている。 (内部的には store メソッドを利用している。)

引数:
self 
out 出力ストリーム
header プロパティリストの記述
def OpenRTM_aist.Properties.Properties.setDefault (   self,
  key,
  value 
)

デフォルト値を登録する

key で指定される要素にデフォルト値を登録する。

引数:
self 
key デフォルト値を登録するプロパティのキー
value 登録されるデフォルト値
戻り値:
指定されたデフォルト値
def OpenRTM_aist.Properties.Properties.setDefaults (   self,
  defaults,
  num = None 
)

Properties にデフォルト値をまとめて登録する.

配列で指定された要素にデフォルト値をまとめて登録する。 デフォルト値は char* の配列により与えられ、key と value の対になって おり、リストの終端は配列の数を表す引数 num か、空文字の key で与えらられ なければならない。

引数:
self 
defaults デフォルト値を指定する配列
num デフォルト値を設定する要素数(デフォルト値:None)
def OpenRTM_aist.Properties.Properties.setProperty (   self,
  key,
  value = None 
)

Properties に value を key について登録する.

Properties に value を key について登録する。 すでに key に対する値を持っている場合、戻り値に古い値を返す。

引数:
self 
key プロパティリストに配置されるキー
value key に対応する値(デフォルト値:None)
戻り値:
プロパティリストの指定されたキーの前の値。それがない場合は null
def OpenRTM_aist.Properties.Properties.size (   self  ) 

プロパティの数を取得する

設定済みのプロパティ数を取得する。

引数:
self 
戻り値:
プロパティ数
def OpenRTM_aist.Properties.Properties.split (   self,
  _str,
  delim,
  value 
)

文字列を分割する

与えられた文字列を、与えられたデリミタで分割する。 与えられた文字列が空の場合は、エラーを返す。 与えられたデリミタがエスケープされている(直前に'\'が設定されている)場合 には、デリミタとして使用しない。

引数:
self 
_str 分割対象文字列
delim デリミタ
value 分割結果値リスト
戻り値:
分割処理結果
def OpenRTM_aist.Properties.Properties.splitKeyValue (   self,
  _str,
  key,
  value 
)

文字列をキーと値のペアに分割する

与えられた文字列を、設定されたデリミタでキーと値のペアに分割する。 まず最初に与えられた文字列に':'もしくは'='が含まれるかを検索し、 どちらかの文字が含まれている場合にはそれをデリミタとして使用する。 両方とも含まれていない場合には、' '(スペース)を用いて分割を試みる。 全てのデリミタ候補が含まれていない場合には、与えられた文字列をキーとして 設定し、値に空の文字列を設定する。 どのデリミタ候補についてもエスケープされている(直前に'\'が設定されている) 場合には、デリミタとして使用しない。

引数:
self 
_str 分割対象文字列
key 分割結果キー
value 分割結果値
def OpenRTM_aist.Properties.Properties.store (   self,
  out,
  header 
)

プロパティリストを出力ストリームへ保存する

Properties テーブル内のプロパティリスト (キーと要素のペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで 出力ストリームに書き込む。

Properties テーブル内のプロパティリスト (キーと要素のペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで 出力ストリームに書き込む。ストリームは、ISO 8859-1 文字 エンコーディングを使用して書き込まれる。 Properties テーブル (存在する場合) のデフォルトテーブルからの プロパティは、このメソッドによっては書き込まれない。

header 引数が null でない場合は、ASCII 文字の #、header の文字列、 および行区切り文字が最初に出力ストリームに書き込まれます。このため、 header は識別コメントとして使うことができる。

次に、ASCII 文字の #、現在の日時 (Date の toString メソッドによって 現在時刻が生成されるのと同様)、および Writer によって生成される行区切り からなるコメント行が書き込まれる。

続いて、 Properties テーブル内のすべてのエントリが 1 行ずつ書き出される。 各エントリのキー文字列、ASCII 文字の=、関連した要素文字列が書き込まれる。 要素文字列の各文字は、エスケープシーケンスとして描画する必要があるか どうか確認される。ASCII 文字の \、タブ、改行、および復帰はそれぞれ \\、 \t、\n、および \r として書き込まれる。\u0020 より小さい文字および \u007E より大きい文字は、対応する 16 進値 xxxx を使って \uxxxx として 書き込まれる。埋め込み空白文字でも後書き空白文字でもない先行空白文字は、 前に \ を付けて書き込まれる。キーと値の文字 #、!、=、および : は、 必ず正しくロードされるように、前にスラッシュを付けて書き込まれる。

エントリが書き込まれたあとで、出力ストリームがフラッシュされる。 出力ストリームはこのメソッドから復帰したあとも開いたままとなる。

引数:
self 
out 出力ストリーム
header プロパティリストの記述

このクラスの説明は次のファイルから生成されました:
OpenRTM-aist-1.1.0-Pythonに対してMon Mar 2 14:14:09 2015に生成されました。  doxygen 1.6.3