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
`static ProxyGenerator` `INSTANCE`

### Constructor Summary

Constructors
Constructor and Description
`ProxyGenerator()`

### Method Summary

Methods
`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(java.lang.Class clazz)`
`GroovyObject` `instantiateAggregateFromBaseClass(java.lang.Class clazz, java.lang.Object[] constructorArgs)`
`GroovyObject` `instantiateAggregateFromBaseClass(Closure cl, java.lang.Class clazz)`
`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.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` `instantiateDelegate(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