Integrating It All
[ 332 ]
)
),
new ExpressionStatement(
new MethodCallExpression(
new VariableExpression('session'),
new ConstantExpression('asMap'),
ArgumentListExpression.EMPTY_ARGUMENTS
)
)
],
new VariableScope()
)
def eventMethodNode = new MethodNode(
"${event}",
Modifier.PUBLIC,
null,
[
new Parameter(
ClassHelper.make(Object, false),
"event",
new ConstantExpression(null)
),
new Parameter(
ClassHelper.make(Object, false),
"sessionData",
new ConstantExpression(null)
)
] as Parameter[],
null,
blockStatement
)
classNode.addMethod(eventMethodNode)
}
}
That concludes the modification we need to make to the engine class. The final part
of the pattern we need to generate is the page classes. We create a new page class for
each page in the engine DSL:
def buildPageClasses() {
for (page in model.pages) {
def pageNode = buildPageClass(page)
for (event in model.events) {
buildPageClassEventClosure(event, page, pageNode)
}
http://www.ebook3000.com