Class AgentBuilder.Listener.Compound

java.lang.Object
net.bytebuddy.agent.builder.AgentBuilder.Listener.Compound
All Implemented Interfaces:
AgentBuilder.Listener
Enclosing interface:
AgentBuilder.Listener

@Enhance public static class AgentBuilder.Listener.Compound extends Object implements AgentBuilder.Listener
A compound listener that allows to group several listeners in one instance.
  • Field Details

    • listeners

      private final List<AgentBuilder.Listener> listeners
      The listeners that are represented by this compound listener in their application order.
  • Constructor Details

    • Compound

      public Compound(AgentBuilder.Listener... listener)
      Creates a new compound listener.
      Parameters:
      listener - The listeners to apply in their application order.
    • Compound

      public Compound(List<? extends AgentBuilder.Listener> listeners)
      Creates a new compound listener.
      Parameters:
      listeners - The listeners to apply in their application order.
  • Method Details

    • onDiscovery

      public void onDiscovery(String typeName, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module, boolean loaded)
      Invoked upon a type being supplied to a transformer.
      Specified by:
      onDiscovery in interface AgentBuilder.Listener
      Parameters:
      typeName - The binary name of the instrumented type.
      classLoader - The class loader which is loading this type or null if loaded by the boots loader.
      module - The instrumented type's module or null if the current VM does not support modules.
      loaded - true if the type is already loaded.
    • onTransformation

      public void onTransformation(TypeDescription typeDescription, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module, boolean loaded, DynamicType dynamicType)
      Invoked prior to a successful transformation being applied.
      Specified by:
      onTransformation in interface AgentBuilder.Listener
      Parameters:
      typeDescription - The type that is being transformed.
      classLoader - The class loader which is loading this type or null if loaded by the boots loader.
      module - The transformed type's module or null if the current VM does not support modules.
      loaded - true if the type is already loaded.
      dynamicType - The dynamic type that was created.
    • onIgnored

      public void onIgnored(TypeDescription typeDescription, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module, boolean loaded)
      Invoked when a type is not transformed but ignored.
      Specified by:
      onIgnored in interface AgentBuilder.Listener
      Parameters:
      typeDescription - The type being ignored for transformation.
      classLoader - The class loader which is loading this type or null if loaded by the boots loader.
      module - The ignored type's module or null if the current VM does not support modules.
      loaded - true if the type is already loaded.
    • onError

      public void onError(String typeName, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module, boolean loaded, Throwable throwable)
      Invoked when an error has occurred during transformation.
      Specified by:
      onError in interface AgentBuilder.Listener
      Parameters:
      typeName - The binary name of the instrumented type.
      classLoader - The class loader which is loading this type or null if loaded by the boots loader.
      module - The instrumented type's module or null if the current VM does not support modules.
      loaded - true if the type is already loaded.
      throwable - The occurred error.
    • onComplete

      public void onComplete(String typeName, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module, boolean loaded)
      Invoked after a class was attempted to be loaded, independently of its treatment.
      Specified by:
      onComplete in interface AgentBuilder.Listener
      Parameters:
      typeName - The binary name of the instrumented type.
      classLoader - The class loader which is loading this type or null if loaded by the boots loader.
      module - The instrumented type's module or null if the current VM does not support modules.
      loaded - true if the type is already loaded.