return new EmptyMethodVisitor() {
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
if (visible && ANNOTATION_TYPES.containsKey(desc)) {
final AnnotationAspectDefinition def = new AnnotationAspectDefinition();
aspectDefinitions.add(def);
def.setAspectClassName(aspectClassName);
def.setAdviceMethodName(visitedMethod);
def.setAspectStartLineNumber(aspectStartLineNumber);
def.setAspectEndLineNumber(aspectEndLineNumber);
def.setAspectName(aspectName);
def.setType(ANNOTATION_TYPES.get(desc));
return new EmptyAnnotationVisitor() {
@Override
public void visit(String name, Object value) {
if ("value".equals(name) || "pointcut".equals(name)) {
def.setPointcutExpression(value.toString());
} else if ("argNames".equals(name)) {
def.setArgNames(StringUtils.commaDelimitedListToStringArray(value.toString()));
} else if ("returning".equals(name)) {
def.setReturning(value.toString());
} else if ("throwing".equals(name)) {
def.setThrowing(value.toString());
}
}
};
}
else {