テストクラスを作るとき、入れ子になったオブジェクトをJavaのコードで記述するのがめんどくさいので。
XMLのデータ
こんな感じ。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bodybuilder> <bodybuilder> <list> <add value="value"/> <add value="値"/> <add> <!-- 入れ子のList --> <list> <add value="nested value"/> <add value="入れ子の値"/> </list> </add> <add> <!-- Map その1 --> <map> <foo value="bar"/> <hoge value="hogera"/> </map> </add> <add> <!-- Map その2 --> <map> <put name="bar" value="foo"/> <put name="hogera" value="hoge"/> </map> </add> <add> <!-- 配列 --> <array type="int"> <elem value="0"/> <elem value="1"/> <elem value="2"/> </array> </add> <add> <!-- Bean --> <bean type="sample.SampleBean"> <id value="9" type="int"/> <value value="Beanの値"/> <subBean> <!-- 入れ子のBean その1 --> <bean type="sample.SampleBean"> <prop name="id" value="99" type="int"/> <prop name="value" value="入れ子の値 その1"/> <prop name="subBean"> <!-- 入れ子のBean その2 --> <bean type="sample.SampleBean"> <prop name="id" value="999" type="int"/> <prop name="value" value="入れ子の値 その2"/> </bean> </prop> </bean> </subBean> </bean> </add> </list> </bodybuilder>
実行時のコード
こんな感じ。
package sample;import bodybuilder.Bullworker;
import bodybuilder.viewer.Viewer;public class Sample {
public static void main(String[] args) {
Bullworker bullworker = new Bullworker(
"C:\\eclipse3\\workspace\\bodybuilder\\data\\sample.xml");
Object obj = bullworker.getMuscle();
Viewer.dump(obj);
}}
サンプルの実行結果
こんな感じ。
ArrayList(7) {
[0]=>
String(5) "value"
[1]=>
String(1) "値"
[2]=>
ArrayList(2) {
[0]=>
String(12) "nested value"
[1]=>
String(5) "入れ子の値"
}
[3]=>
HashMap(2) {
["foo"]=>
String(3) "bar"
["hoge"]=>
String(6) "hogera"
}
[4]=>
HashMap(2) {
["hogera"]=>
String(4) "hoge"
["bar"]=>
String(3) "foo"
}
[5]=>
Integer[3] {
[0]=>
Integer "0"
[1]=>
Integer "1"
[2]=>
Integer "2"
}
[6]=>
sample.SampleBean {
["value"]=>
String(6) "Beanの値"
["subBean"]=>
sample.SampleBean {
["value"]=>
String(9) "入れ子の値 その1"
["subBean"]=>
sample.SampleBean {
["value"]=>
String(9) "入れ子の値 その2"
["subBean"]=>
null
["id"]=>
Integer "999"
}
["id"]=>
Integer "99"
}
["id"]=>
Integer "9"
}
}
TODO
*1:要 Commons BeanUtils/Logging、JDOM、Xerces