7.18.5 getPropertiesByGroup(外部プロパティ取込関数)
引数に指定した外部プロパティファイルから,引数に指定したキーワードがマッピングされているグループに属するプロパティを取得する関数です。
外部プロパティファイルの定義規則は,「5.6.5(7) Java呼出アクティビティから利用できるAPI」を参照してください。
外部プロパティ取込関数は,cscdt_api.jarにパッケージされたクラスを利用します。このためusrconf.cfg(J2EEサーバ用オプション定義ファイル)にcscdt_api.jarファイルのクラスパスを指定してください。
(1) 関数仕様
関数仕様を次の表に示します。
# |
項目 |
値 |
---|---|---|
1 |
パッケージ |
jp.co.Hitachi.soft.csc.dt.customfunc |
2 |
クラス |
CSCCustomGroupedProperties |
3 |
メソッド |
getPropertiesByGroup 引数に指定した外部プロパティファイルから,引数に指定したキーワードに対応したグループに属するプロパティを取得する関数 |
4 |
引数1 |
java.lang.Object filePath 外部プロパティファイルの絶対パス 相対パスを指定した場合は,サポートしません。 |
5 |
引数2 |
java.lang.Object keyword 取得対象キーワード |
6 |
引数3 |
java.lang.Object namespace 戻り値の名前空間を使用する要素に付与する名前空間URI 出力結果のプロパティにprefix付きのパス要素があり,かつ,この引数に空文字列が指定された場合は,外部プロパティ取込関数は異常終了(例外をスロー)します。 |
7 |
戻り値 |
org.w3c.dom.NodeLis 外部プロパティファイル内でkeywordにマッピングされたグループに属するプロパティのリスト |
(2) 注意事項
外部プロパティファイルは,各プロパティのキー値を次の形式と見なしてXMLノードに展開します。
GroupID.NodeName[.NodeName]*
先頭のGroupIDは,取得対象のグループを決定するために使用し,戻り値のXMLノードリストから取り除きます。続くNodeName[.NodeName]をピリオド(.)で区切られたXML要素名としてXML階層構造に展開します。
NodeNameにピリオド(.)を含める場合は,「¥.」(円記号またはバックスラッシュに続くピリオド)にエスケープしてください。
filePathパラメタに指定したパスに,次に示す外部プロパティファイルに起因するエラーが発生した場合,外部プロパティ取込関数は例外を発生してエラー終了します。
-
ファイルの読み込みに失敗した場合
-
内容が不正の場合
(3) 変換例
filePathで指定する外部プロパティファイルが次の定義例の場合の,変換例を「表7-61 変換例」に示します。
group1 = Group1Key1, Group1Key2, Group1Key3 group2 = Group2Key1, Group2Key2, Group2Key3 group1.nodeA.node1 = Property Value 1 group1.nodeA.node2 = Property Value 2 group1.nodeA.node\\.X = Property Value 3 group2.nodeA = Property Value 4 group2.nodeB = Property Value 5
入力データ(keyword引数) |
出力結果 |
---|---|
Group1Key1, Group1Key2, Group1Key3 のどれか |
[ <nodeA> <node1>Property Value 1</node1> <node2>Property Value 2</node2> <node.X>Property Value 3</node.X> </nodeA> ] |
Group2Key1, Group2Key2, Group2Key3 のどれか |
[ <nodeA>Property Value 4</nodeA> <nodeB>Property Value 5</nodeB> ] |
上記以外 |
[](空のノードリスト) |
外部プロパティ取込関数をTP1アダプタ接続先動的変更のヘッダ割当変数に設定する場合の,外部プロパティファイルの定義例と変換例を次に示します。
# Sample external property for TP1 Dynamic Connection function g0 = g0 g0.tpdh\:TP1DynamicConnection.tpdh\:static_host = localhost g0.tpdh\:TP1DynamicConnection.tpdh\:static_port = 10001 g1 = g1 g1.tpdh\:TP1DynamicConnection.tpdh\:static_host = tp1.unknown.nothing g1.tpdh\:TP1DynamicConnection.tpdh\:static_port = 10002
namespace引数に「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/tp1dynamics/header」を指定したときの変換例を次の表に示します。
入力データ(keyword引数) |
出力結果 |
---|---|
g0 |
[ <tpdh:TP1DynamicConnection xmlns:tpdh="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/tp1dynamics/header"> <tpdh:static_host>localhost</tpdh:static_host> <tpdh:static_port>10001</tpdh:static_port> </tpdh:TP1DynamicConnection> ] |
g1 |
[ <tpdh:TP1DynamicConnection xmlns:tpdh="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/tp1dynamics/header"> <tpdh:static_host>tp1.unknown.nothing</tpdh:static_host> <tpdh:static_port>10002</tpdh:static_port> </tpdh:TP1DynamicConnection> ] |
上記以外 |
[](空のノードリスト) |