2012-05-30 14 views
7

Tengo una Anotación personalizada llamada @Invisible. Ahora quiero hacer coincidir todas las llamadas y un método que NO TIENE una @Invisible Annotation. ¿Cómo puedo hacer esto? (Desarrollo con el estilo de anotación)Cómo hacer coincidir métodos que no tienen una Anotación específica en AspectJ

Mi primer intento fue:

@Pointcut("execution([email protected] * some.other.package.execute(..))") 

pero esto no parece funcionar ...

En otras palabras: si el método tiene la anotación invisible quiero ignorarlo De lo contrario, quiero ejecutar algún código con mi consejo ...

+1

¿Tiene algún otro consejo de la clase antes de éste? En otras palabras, ¿ya se ha procesado la clase, posiblemente perdiendo anotaciones? AFAIK la sintaxis misma funciona. –

+3

intente algo como 'ejecución (* some.other.package.execute (..)) &&! @annotation (my.package.Invisible)' –

+0

@ KonstantinV.Salikhov De acuerdo con el [cuaderno de anotaciones de anotaciones] (http: // www.eclipse.org/aspectj/doc/released/adk15notebook/annotations-pointcuts-and-advice.html) usted * debería * poder combinarlo en una sola expresión, pero vale la pena intentarlo. –

Respuesta

7

intentar algo así como execution(* some.other.package.execute(..)) && [email protected](my.package.Invisible)

Cuestiones relacionadas