Package groovy.util

# Class ProxyGenerator

java.lang.Object
groovy.util.ProxyGenerator

    public class ProxyGenerator
    extends java.lang.Object

Generates '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

  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 Details

  - ### INSTANCE

    public static final ProxyGenerator INSTANCE

- ## Constructor Details

  - ### ProxyGenerator

    public ProxyGenerator()

- ## Method Details

  - ### 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