オブジェクト階層を表現するために使用される nodeBuilder を想像してください。
class TestBuilder {
static main(args) {
def builder = new NodeBuilder()
def ulcDate = new Date(107,0,1)
def invoices = builder.invoices{
invoice(date: ulcDate){
item(count:5){
product(name:'ULC', dollar:1499)
}
item(count:1){
product(name:'Visual Editor', dollar:499)
}
}
invoice(date: new Date(106,1,2)){
item(count:4) {
product(name:'Visual Editor', dollar:499)
}
}
}
}
class Invoice {
List items
Date date
}
class LineItem {
Product product
int count
int total()
{
return product.dollar * count
}
}
class Product {
String name
def dollar
}
NodeBuilder によって生成された請求書オブジェクトを、請求書オブジェクトからすべてが構成された Invoice クラスのインスタンスに実際に変換するにはどうすればよいですか? そのためにはおそらく GPath を使用する必要がありますが (?)、そのコードはどのようになりますか?
私がそうする必要がある理由は、他のクラスの他のメソッドがさらに動作するために Invoice クラスのインスタンスを必要とし、私が推測する NodeBuilder 出力を受け入れないからです。