in bytekit-core/src/main/java/com/alibaba/bytekit/asm/interceptor/annotation/AtInvoke.java [49:75]
public InterceptorProcessor parse(Method method, Annotation annotationOnMethod) {
AtInvoke atInvoke = (AtInvoke) annotationOnMethod;
String owner = null;
String desc = null;
if (!atInvoke.owner().equals(Void.class)) {
owner = Type.getType(atInvoke.owner()).getInternalName();
}
if (atInvoke.desc().isEmpty()) {
desc = null;
}
List<String> excludes = new ArrayList<String>();
for (String exclude : atInvoke.excludes()) {
excludes.add(exclude);
}
LocationMatcher locationMatcher = new InvokeLocationMatcher(owner, atInvoke.name(), desc, atInvoke.count(),
atInvoke.whenComplete(), excludes);
return InterceptorParserUtils.createInterceptorProcessor(method,
locationMatcher,
atInvoke.inline(),
atInvoke.suppress(),
atInvoke.suppressHandler());
}