Imaginemos el siguiente aspecto:¿Es posible recuperar la instancia del objeto realizando una llamada a un método con AspectJ?
aspect FaultHandler {
pointcut services(Server s): target(s) && call(public * *(..));
before(Server s): services(s) {
// How to retrieve the calling object instance?
if (s.disabled) ...;
}
}
El punto de corte captura todas las llamadas a métodos públicos de Server
y dirige el consejo before
justo antes de que cualquiera de estos son llamados.
¿Es posible recuperar la instancia del objeto que realiza la llamada al método público Server
en el consejo before
? Si es así, ¿cómo?
¿Así que 'o' será quien llame mi método con seguridad? Incluso si el método del servidor se llama desde el código estático? – JVerstry
@JVerstry: La [documentación] (http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html) indica que el 'punto de corte' "no coincidirá con ningún punto de unión de contextos estáticos " –
Creo que la documentación significa que "en el caso de una ejecución de método estático, no existe esto, por lo que no se puede capturar utilizando this()". –