Class Plugin.Compound

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, Plugin, ElementMatcher<TypeDescription>
    Enclosing interface:
    Plugin

    @Enhance
    public static class Plugin.Compound
    extends java.lang.Object
    implements Plugin
    A compound plugin that applies several plugins in a row.
    • Field Detail

      • plugins

        private final java.util.List<Plugin> plugins
        The plugins to apply.
    • Constructor Detail

      • Compound

        public Compound​(Plugin... plugin)
        Creates a compound plugin.
        Parameters:
        plugin - The plugins to apply.
      • Compound

        public Compound​(java.util.List<? extends Plugin> plugins)
        Creates a compound plugin.
        Parameters:
        plugins - The plugins to apply.
    • Method Detail

      • matches

        public boolean matches​(TypeDescription target)
        Matches a target against this element matcher.
        Specified by:
        matches in interface ElementMatcher<TypeDescription>
        Parameters:
        target - The instance to be matched.
        Returns:
        true if the given element is matched by this matcher or false otherwise.
      • 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()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException