Class SafeVarargsPlugin

java.lang.Object
net.bytebuddy.build.Plugin.ForElementMatcher
net.bytebuddy.build.SafeVarargsPlugin
All Implemented Interfaces:
Closeable, AutoCloseable, Plugin, Plugin.Factory, ElementMatcher<TypeDescription>

@Enhance public class SafeVarargsPlugin extends Plugin.ForElementMatcher implements Plugin.Factory
A plugin that allows for adding a java.lang.SafeVarargs annotation even if compiled prior to Java 7 which introduces this annotation. As the annotation is not present on previous JVM versions, it is ignored at runtime for older JVM versions what makes this approach feasible.
  • Constructor Details

    • SafeVarargsPlugin

      public SafeVarargsPlugin()
      Creates a new plugin for creating repeated annotations.
  • Method Details

    • make

      public Plugin make()
      Returns a plugin that can be used for a transformation and which is subsequently closed.
      Specified by:
      make in interface Plugin.Factory
      Returns:
      The plugin to use for type transformations.
    • apply

      public DynamicType.Builder<?> apply(DynamicType.Builder<?> builder, TypeDescription typeDescription, ClassFileLocator classFileLocator)
      Applies this plugin.
      Specified by:
      apply in interface Plugin
      Parameters:
      builder - The builder to use as a basis for the applied transformation.
      typeDescription - The type being transformed.
      classFileLocator - A class file locator that can locate other types in the scope of the project.
      Returns:
      The supplied builder with additional transformations registered.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable