J'écris un DelegatingMetaClass que je voudrais appliquer à toutes les classes groovy dans mon projet, mais je ne sais pas comment obtenir toutes les classes dans le projet?Comment lister toutes les classes (groovy) dans JVM dans groovy
Voici le code:
/*
This will work ok, since I know Foo beforehand, but what about classes
that do not exist yet?
*/
def myMetaClass = new DelegatingMetaClass(Foo.class)
InvokerHelper.metaRegistry.setMetaClass(Foo.class, myMetaClass)
/*
how to do this?
allGroovyClasses.each{
def myMetaClass = new DelegatingMetaClass(it)
InvokerHelper.metaRegistry.setMetaClass(it, myMetaClass)
}
*/
class SimpleInterceptor extends DelegatingMetaClass{
public SimpleInterceptor(final Class aclass) {
super(aclass);
initialize();
}
public Object getProperty(Object object, String prop) {
println ("I am in a property interceptor!!!")
return super.getProperty(object, prop)
}
public Object invokeMethod(Object a_object, String a_methodName, Object[] a_arguments)
{
println ("I am in a method interceptor!!!")
return super.invokeMethod(a_object, a_methodName, a_arguments)
}
J'essaie d'utiliser l'interception pour la programmation de style AOP. – Dan