in TransformCore/src/main/java/com/facebook/ads/injkit/benchmark/BenchmarkInjector.java [63:117]
static Injector make(ClassLoader applicationClasses, BenchmarkConfiguration config)
throws InvalidAnnotationProcessorConfigurationException {
if (!config.isBenchmarkEnabled() && config.getBenchmarkAnnotationClass() == null) {
return new NopInjector();
}
if (config.getBenchmarkReceiverClass() != null) {
Class<?> receiverClass =
ReflectUtils.checkClassExistsAndIsPublic(
applicationClasses, config.getBenchmarkReceiverClass());
ReflectUtils.checkMethodIsPublicStatic(
receiverClass,
EXECUTED_SUCCESS_METHOD_NAME,
String.class,
String.class,
String.class,
long.class);
ReflectUtils.checkMethodIsPublicStatic(
receiverClass,
EXECUTED_WARNING_METHOD_NAME,
String.class,
String.class,
String.class,
long.class,
long.class);
ReflectUtils.checkMethodIsPublicStatic(
receiverClass,
EXECUTED_FAILED_METHOD_NAME,
String.class,
String.class,
String.class,
long.class,
long.class);
ReflectUtils.checkMethodIsPublicStatic(
receiverClass,
EXECUTED_THROWN_METHOD_NAME,
String.class,
String.class,
String.class,
Throwable.class,
long.class);
}
return new BenchmarkInjector(
config.isBenchmarkEnabled(),
pkg -> false,
config.getBenchmarkAnnotationClass(),
config.getBenchmarkReceiverClass() == null
? null
: AsmNameUtils.classJavaNameToInternalName(config.getBenchmarkReceiverClass()));
}