static Injector make()

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()));
  }