Моята цел е да изпълня groovy скрипт с обвързване, където функциите са предварително дефинирани и времето за изпълнение на излизане от интерцептора и резултатът от оценката на затварянето. Моят примерен код е:
binding.login = { ->
binding.event.appname=='login'
} def gse = new GroovyScriptEngine("src/main/resources/rules")
gse.run('DSL.groovy', binding)
В моя скрипт правя повикване към метод за влизане. Всичко работи, освен че не мога да разбера как да го прихвана с помощта на MetaClass. Моите опити като
Binding.metaClass.invokeMethod = { String name, args ->
println ("Call to $name intercepted... ")
не проработи. По-късно разбрах, че затварянето е свойство на обвързването, а не метод. Има ли някакъв начин да се извърши прихващане в този сценарий и как да го направите? Какъв би бил правилният обект за метаклас? За отбелязване, моето затваряне се изпълни вътре в други вложени затваряния. Благодаря