Config.groovy内のビルダー構文を使用して、ナビゲーション用のサイトの構造を次のようにグラフ化しようとしています。
com.foo.demo.siteStructure = NodeBuilder.newInstance().site() {
item(controller: 'sample', action: 'list')
item(controller: 'address', action: 'list') {
item(controller: 'city', action: 'list', title: 'Municipality')
}
}
これがデバッガーで生成するオブジェクトは次のとおりです。
site[attributes={}; value=[item[attributes={controller=sample, action=list}; value=[]], item[attributes={controller=city, action=list, title=Municipality}; value=[]]]]
したがって、1レベルだけ深くなり、2番目のアイテムが含まれているアイテムに置き換えられているように見えます。
Itemオブジェクトを事前定義して使用すると、同じ単一レベルのネストが得られますObjectGraphBuilder
。
class Item {
String controller
String action
String title
SiteNode parent
List<Item> items = []
}
したがって、ConfigSlurperが結果をなんとかして操作しているように見えます。ネストされた構造を構成値としてマークアップするためのより良い方法はありますか?