Бих искал да напиша аспект на AspectJ, който защитава всички методи на нашите Java класове, които имат ограничение за проверка на javax. т.е. за следния код
@Target({METHOD})
@Retention(RUNTIME)
@Constraint
public @interface NiceMessage {
}
public class Sample {
void doSomething(@NiceMessage String message) {
}
void doSomethingElse(String message) {
}
}
'before' pointcut трябва да се използва за метода 'doSomething', но не и за метода 'doSomethingElse'. Следователно pointcut трябва да се прилага за всички методи, които съдържат поне един параметър с анотация, която сама по себе си има анотацията @Constraint.
Как може да се изрази такъв pointcut с AspectJ?