snipplrCallback({"id":18060,"title":"bernds-lsung","source":"
class<\/span><\/a> TimeLogger {<\/span><\/div><\/li> <\/div><\/li> def<\/span><\/a> oldDelegate<\/div><\/li> <\/div><\/li> static<\/span><\/a> timeLogged(<\/span>closure)<\/span> {<\/span><\/div><\/li> new<\/span><\/a> TimeLogger(<\/span>)<\/span>.bundleCalls<\/span>(<\/span>closure)<\/span><\/div><\/li> }<\/span><\/div><\/li> <\/div><\/li> private<\/span><\/a> bundleCalls =<\/span> {<\/span> closure -><\/span><\/div><\/li> closure.resolveStrategy<\/span> =<\/span> Closure.DELEGATE_ONLY<\/span><\/div><\/li> oldDelegate =<\/span> closure.delegate<\/span><\/div><\/li> closure.delegate<\/span> =<\/span> this<\/span><\/a><\/div><\/li> closure(<\/span>)<\/span><\/div><\/li> }<\/span><\/div><\/li> <\/div><\/li> def<\/span><\/a> invokeMethod<\/span><\/a>(<\/span>String<\/span><\/a> name, args)<\/span> {<\/span><\/div><\/li> long<\/span><\/a> start<\/span><\/a> =<\/span> <\/div><\/li> System<\/span><\/a>.currentTimeMillis<\/span>(<\/span>)<\/span><\/div><\/li> def<\/span><\/a> result =<\/span><\/div><\/li> oldDelegate.invokeMethod<\/span><\/a>(<\/span>name, args)<\/span><\/div><\/li> def<\/span><\/a> duration =<\/span><\/div><\/li> (<\/span>System<\/span><\/a>.currentTimeMillis<\/span>(<\/span>)<\/span> +<\/span> start<\/span><\/a>)<\/span> \/ 1000<\/span><\/div><\/li> println<\/span><\/a> "duration in sec: $duration"<\/span><\/div><\/li> return<\/span><\/a> result<\/div><\/li> }<\/span><\/div><\/li> }<\/span><\/div><\/li> <\/div><\/li> import<\/span><\/a> static<\/span> TimeLogger.timeLogged<\/span><\/div><\/li> <\/div><\/li> def<\/span><\/a> tueA(<\/span>)<\/span> {<\/span> tue(<\/span>'a'<\/span>)<\/span> }<\/span><\/div><\/li>