Class AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory

java.lang.Object
net.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory
Enclosing class:
AgentBuilder.LambdaInstrumentationStrategy

@Enhance protected static class AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory extends Object
A factory that creates instances that represent lambda expressions.
  • Field Details

    • LAMBDA_FACTORY

      private static final String LAMBDA_FACTORY
      The name of a factory for a lambda expression.
      See Also:
    • FIELD_PREFIX

      private static final String FIELD_PREFIX
      A prefix for a field that represents a property of a lambda expression.
      See Also:
    • LAMBDA_TYPE_INFIX

      private static final String LAMBDA_TYPE_INFIX
      The infix to use for naming classes that represent lambda expression. The additional prefix is necessary because the subsequent counter is not sufficient to keep names unique compared to the original factory.
      See Also:
    • NOT_PREVIOUSLY_DEFINED

      @AlwaysNull private static final Class<?> NOT_PREVIOUSLY_DEFINED
      A type-safe constant to express that a class is not already loaded when applying a class file transformer.
    • LAMBDA_NAME_COUNTER

      private static final AtomicInteger LAMBDA_NAME_COUNTER
      A counter for naming lambda expressions randomly.
    • byteBuddy

      private final ByteBuddy byteBuddy
      The Byte Buddy instance to use for creating lambda objects.
  • Constructor Details

    • LambdaInstanceFactory

      protected LambdaInstanceFactory(ByteBuddy byteBuddy)
      Creates a new lambda instance factory.
      Parameters:
      byteBuddy - The Byte Buddy instance to use for creating lambda objects.
  • Method Details

    • make

      public byte[] make(Object targetTypeLookup, String lambdaMethodName, Object factoryMethodType, Object lambdaMethodType, Object targetMethodHandle, Object specializedLambdaMethodType, boolean serializable, List<Class<?>> markerInterfaces, List<?> additionalBridges, Collection<? extends ClassFileTransformer> classFileTransformers)
      Applies this lambda meta factory.
      Parameters:
      targetTypeLookup - A lookup context representing the creating class of this lambda expression.
      lambdaMethodName - The name of the lambda expression's represented method.
      factoryMethodType - The type of the lambda expression's represented method.
      lambdaMethodType - The type of the lambda expression's factory method.
      targetMethodHandle - A handle representing the target of the lambda expression's method.
      specializedLambdaMethodType - A specialization of the type of the lambda expression's represented method.
      serializable - true if the lambda expression should be serializable.
      markerInterfaces - A list of interfaces for the lambda expression to represent.
      additionalBridges - A list of additional bridge methods to be implemented by the lambda expression.
      classFileTransformers - A collection of class file transformers to apply when creating the class.
      Returns:
      A binary representation of the transformed class file.