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.- Author:
- Paul King, Guillaume Laforge
-
-
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()
java.lang.String
getSimpleName(java.lang.Class c)
TODO once we switch to Java 1.5 bt default, use Class#getSimpleName() directlyGroovyObject
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)
void
setDebug(boolean debug)
InstructsProxyGenerator
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)
java.lang.String
shortName(java.lang.String name)
-
-
-
Field Detail
-
INSTANCE
public static final ProxyGenerator INSTANCE
-
-
Method Detail
-
getDebug
public boolean getDebug()
-
setDebug
public void setDebug(boolean debug)
InstructsProxyGenerator
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 anUnsupportedOperationException
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)
-
getSimpleName
public java.lang.String getSimpleName(java.lang.Class c)
TODO once we switch to Java 1.5 bt default, use Class#getSimpleName() directly- Parameters:
c
- the class of which we want the readable simple name- Returns:
- the readable simple name
-
shortName
public java.lang.String shortName(java.lang.String name)
-
-