Package groovy.util

## Class ProxyGenerator

- java.lang.Object
- - groovy.util.ProxyGenerator

-     public class ProxyGenerator
      extends java.lang.Object

  Classes to generate 'Proxy' objects which implement interfaces, maps of closures and/or extend classes/delegates.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static ProxyGenerator` | `INSTANCE` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ProxyGenerator()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `getDebug()` |
    `boolean` | `getEmptyMethods()` |
    `java.lang.ClassLoader` | `getOverride()` |
    `GroovyObject` | `instantiateAggregate​(java.util.List<java.lang.Class> interfaces)` |
    `GroovyObject` | `instantiateAggregate​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces)` |
    `GroovyObject` | `instantiateAggregate​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces, java.lang.Class clazz)` |
    `GroovyObject` | `instantiateAggregate​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces, java.lang.Class clazz, java.lang.Object[] constructorArgs)` |
    `GroovyObject` | `instantiateAggregateFromBaseClass​(Closure cl, java.lang.Class clazz)` |
    `GroovyObject` | `instantiateAggregateFromBaseClass​(java.lang.Class clazz)` |
    `GroovyObject` | `instantiateAggregateFromBaseClass​(java.lang.Class clazz, java.lang.Object[] constructorArgs)` |
    `GroovyObject` | `instantiateAggregateFromBaseClass​(java.util.Map map, java.lang.Class clazz)` |
    `GroovyObject` | `instantiateAggregateFromBaseClass​(java.util.Map map, java.lang.Class clazz, java.lang.Object[] constructorArgs)` |
    `GroovyObject` | `instantiateAggregateFromInterface​(java.lang.Class clazz)` |
    `GroovyObject` | `instantiateAggregateFromInterface​(java.util.Map map, java.lang.Class clazz)` |
    `GroovyObject` | `instantiateDelegate​(java.lang.Object delegate)` |
    `GroovyObject` | `instantiateDelegate​(java.util.List<java.lang.Class> interfaces, java.lang.Object delegate)` |
    `GroovyObject` | `instantiateDelegate​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces, java.lang.Object delegate)` |
    `GroovyObject` | `instantiateDelegateWithBaseClass​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces, java.lang.Object delegate)` |
    `GroovyObject` | `instantiateDelegateWithBaseClass​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces, java.lang.Object delegate, java.lang.Class baseClass)` |
    `GroovyObject` | `instantiateDelegateWithBaseClass​(java.util.Map closureMap, java.util.List<java.lang.Class> interfaces, java.lang.Object delegate, java.lang.Class baseClass, java.lang.String name)` | Creates a proxy with a delegate object.
    `void` | `setDebug​(boolean debug)` | Instructs `ProxyGenerator` to dump generated Groovy source code to standard output during construction.
    `void` | `setEmptyMethods​(boolean emptyMethods)` | Changes generated methods to have empty implementations.
    `void` | `setOverride​(java.lang.ClassLoader override)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### INSTANCE

          public static final ProxyGenerator INSTANCE

  - ### Constructor Detail

    - #### ProxyGenerator

          public ProxyGenerator()

  - ### Method Detail

    - #### getDebug

          public boolean getDebug()

    - #### setDebug

          public void setDebug​(boolean debug)

      Instructs `ProxyGenerator` to dump generated Groovy source code to standard output during construction. This is useful for debugging purposes but should be turned off in production.
      Parameters:
        `debug` - true if you want generated source to be printed

    - #### getEmptyMethods

          public boolean getEmptyMethods()

    - #### setEmptyMethods

          public void setEmptyMethods​(boolean emptyMethods)

      Changes generated methods to have empty implementations.

      Methods in generated aggregates not supplied in a closures map or base class are given 'default' implementations. The implementation will normally throw an `UnsupportedOperationException` but setting this boolean will leave it empty.

      Parameters:
        `emptyMethods` - true if you want generated methods to be empty

    - #### getOverride

          public java.lang.ClassLoader getOverride()

    - #### setOverride

          public void setOverride​(java.lang.ClassLoader override)

    - #### instantiateAggregateFromBaseClass

          public GroovyObject instantiateAggregateFromBaseClass​(java.lang.Class clazz)

    - #### instantiateAggregateFromBaseClass

          public GroovyObject instantiateAggregateFromBaseClass​(java.util.Map map,
                                                                java.lang.Class clazz)

    - #### instantiateAggregateFromBaseClass

          public GroovyObject instantiateAggregateFromBaseClass​(Closure cl,
                                                                java.lang.Class clazz)

    - #### instantiateAggregateFromBaseClass

          public GroovyObject instantiateAggregateFromBaseClass​(java.lang.Class clazz,
                                                                java.lang.Object[] constructorArgs)

    - #### instantiateAggregateFromBaseClass

          public GroovyObject instantiateAggregateFromBaseClass​(java.util.Map map,
                                                                java.lang.Class clazz,
                                                                java.lang.Object[] constructorArgs)

    - #### instantiateAggregateFromInterface

          public GroovyObject instantiateAggregateFromInterface​(java.lang.Class clazz)

    - #### instantiateAggregateFromInterface

          public GroovyObject instantiateAggregateFromInterface​(java.util.Map map,
                                                                java.lang.Class clazz)

    - #### instantiateAggregate

          public GroovyObject instantiateAggregate​(java.util.List<java.lang.Class> interfaces)

    - #### instantiateAggregate

          public GroovyObject instantiateAggregate​(java.util.Map closureMap,
                                                   java.util.List<java.lang.Class> interfaces)

    - #### instantiateAggregate

          public GroovyObject instantiateAggregate​(java.util.Map closureMap,
                                                   java.util.List<java.lang.Class> interfaces,
                                                   java.lang.Class clazz)

    - #### instantiateAggregate

          public GroovyObject instantiateAggregate​(java.util.Map closureMap,
                                                   java.util.List<java.lang.Class> interfaces,
                                                   java.lang.Class clazz,
                                                   java.lang.Object[] constructorArgs)

    - #### instantiateDelegate

          public GroovyObject instantiateDelegate​(java.lang.Object delegate)

    - #### instantiateDelegate

          public GroovyObject instantiateDelegate​(java.util.List<java.lang.Class> interfaces,
                                                  java.lang.Object delegate)

    - #### instantiateDelegate

          public GroovyObject instantiateDelegate​(java.util.Map closureMap,
                                                  java.util.List<java.lang.Class> interfaces,
                                                  java.lang.Object delegate)

    - #### instantiateDelegateWithBaseClass

          public GroovyObject instantiateDelegateWithBaseClass​(java.util.Map closureMap,
                                                               java.util.List<java.lang.Class> interfaces,
                                                               java.lang.Object delegate)

    - #### instantiateDelegateWithBaseClass

          public GroovyObject instantiateDelegateWithBaseClass​(java.util.Map closureMap,
                                                               java.util.List<java.lang.Class> interfaces,
                                                               java.lang.Object delegate,
                                                               java.lang.Class baseClass)

    - #### instantiateDelegateWithBaseClass

          public GroovyObject instantiateDelegateWithBaseClass​(java.util.Map closureMap,
                                                               java.util.List<java.lang.Class> interfaces,
                                                               java.lang.Object delegate,
                                                               java.lang.Class baseClass,
                                                               java.lang.String name)

      Creates a proxy with a delegate object.
      Parameters:
        `closureMap` - the closure for methods not handled by the delegate
        `interfaces` - interfaces to be implemented
        `delegate` - the delegate object
        `baseClass` - the base class
        `name` - the name of the proxy, unused, but kept for compatibility with previous versions of Groovy.
      Returns:
        a proxy object implementing the specified interfaces, and delegating to the provided object