groovy.util
Class ProxyGenerator

java.lang.Object
  extended by groovy.util.ProxyGenerator

public class ProxyGenerator
extends java.lang.Object

Classes to generate 'Proxy' objects which implement interfaces and/or extend classes.

Author:
Paul King, Guillaume Laforge

Field Summary
private  boolean debug
           
static ProxyGenerator INSTANCE
           
private  java.lang.ClassLoader override
           
 
Constructor Summary
ProxyGenerator()
           
 
Method Summary
private  void addMapOrDummyCall(java.util.Map map, java.lang.StringBuffer buffer, java.lang.reflect.Method method)
           
private  void addMethodBody(java.lang.StringBuffer buffer, java.lang.reflect.Method method, java.lang.Class[] parameterTypes)
           
private  java.lang.Class[] addMethodPrefix(java.lang.StringBuffer buffer, java.lang.reflect.Method method)
           
private  void addMethodSuffix(java.lang.StringBuffer buffer)
           
private  void addNewMapCall(java.lang.StringBuffer buffer, java.lang.String methodName)
           
private  void addOverridingMapCall(java.lang.StringBuffer buffer, java.lang.reflect.Method method)
           
private  void addWrappedCall(java.lang.StringBuffer buffer, java.lang.reflect.Method method, java.util.Map map)
           
private  void addWrappedMethodBody(java.lang.StringBuffer buffer, java.lang.reflect.Method method, java.lang.Class[] parameterTypes)
           
private  boolean containsEquivalentMethod(java.util.List publicAndProtectedMethods, java.lang.reflect.Method candidate)
           
 boolean getDebug()
           
private  java.util.List getInheritedMethods(java.lang.Class baseClass)
           
 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() directly
private  boolean hasMatchingParameterTypes(java.lang.reflect.Method method, java.lang.reflect.Method candidate)
           
 java.lang.Object instantiateAggregate(java.util.List interfaces)
           
 java.lang.Object instantiateAggregate(java.util.Map closureMap, java.util.List interfaces)
           
 java.lang.Object instantiateAggregate(java.util.Map closureMap, java.util.List interfaces, java.lang.Class clazz)
           
 java.lang.Object instantiateAggregate(java.util.Map closureMap, java.util.List interfaces, java.lang.Class clazz, java.lang.Object[] constructorArgs)
           
 java.lang.Object instantiateAggregateFromBaseClass(java.lang.Class clazz)
           
 java.lang.Object instantiateAggregateFromBaseClass(java.util.Map map, java.lang.Class clazz)
           
 java.lang.Object instantiateAggregateFromBaseClass(java.util.Map map, java.lang.Class clazz, java.lang.Object[] constructorArgs)
           
 java.lang.Object instantiateAggregateFromInterface(java.lang.Class clazz)
           
 java.lang.Object instantiateAggregateFromInterface(java.util.Map map, java.lang.Class clazz)
           
 java.lang.Object instantiateDelegate(java.util.List interfaces, java.lang.Object delegate)
           
 java.lang.Object instantiateDelegate(java.util.Map closureMap, java.util.List interfaces, java.lang.Object delegate)
           
 java.lang.Object instantiateDelegate(java.lang.Object delegate)
           
 java.lang.Object instantiateDelegateWithBaseClass(java.util.Map closureMap, java.util.List interfaces, java.lang.Object delegate)
           
 java.lang.Object instantiateDelegateWithBaseClass(java.util.Map closureMap, java.util.List interfaces, java.lang.Object delegate, java.lang.Class baseClass)
           
 java.lang.Object instantiateDelegateWithBaseClass(java.util.Map closureMap, java.util.List interfaces, java.lang.Object delegate, java.lang.Class baseClass, java.lang.String name)
           
 void setDebug(boolean debug)
           
private static void setMetaClass(MetaClass metaClass)
           
 void setOverride(java.lang.ClassLoader override)
           
 java.lang.String shortName(java.lang.String name)
           
 
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

override

private java.lang.ClassLoader override

debug

private boolean debug
Constructor Detail

ProxyGenerator

public ProxyGenerator()
Method Detail

getDebug

public boolean getDebug()

setDebug

public void setDebug(boolean debug)

getOverride

public java.lang.ClassLoader getOverride()

setOverride

public void setOverride(java.lang.ClassLoader override)

instantiateAggregateFromBaseClass

public java.lang.Object instantiateAggregateFromBaseClass(java.lang.Class clazz)

instantiateAggregateFromBaseClass

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

instantiateAggregateFromBaseClass

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

instantiateAggregateFromInterface

public java.lang.Object instantiateAggregateFromInterface(java.lang.Class clazz)

instantiateAggregateFromInterface

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

instantiateAggregate

public java.lang.Object instantiateAggregate(java.util.List interfaces)

instantiateAggregate

public java.lang.Object instantiateAggregate(java.util.Map closureMap,
                                             java.util.List interfaces)

instantiateAggregate

public java.lang.Object instantiateAggregate(java.util.Map closureMap,
                                             java.util.List interfaces,
                                             java.lang.Class clazz)

instantiateAggregate

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

instantiateDelegate

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

instantiateDelegate

public java.lang.Object instantiateDelegate(java.util.List interfaces,
                                            java.lang.Object delegate)

instantiateDelegate

public java.lang.Object instantiateDelegate(java.util.Map closureMap,
                                            java.util.List interfaces,
                                            java.lang.Object delegate)

instantiateDelegateWithBaseClass

public java.lang.Object instantiateDelegateWithBaseClass(java.util.Map closureMap,
                                                         java.util.List interfaces,
                                                         java.lang.Object delegate)

instantiateDelegateWithBaseClass

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

instantiateDelegateWithBaseClass

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

addWrappedCall

private void addWrappedCall(java.lang.StringBuffer buffer,
                            java.lang.reflect.Method method,
                            java.util.Map map)

containsEquivalentMethod

private boolean containsEquivalentMethod(java.util.List publicAndProtectedMethods,
                                         java.lang.reflect.Method candidate)

hasMatchingParameterTypes

private boolean hasMatchingParameterTypes(java.lang.reflect.Method method,
                                          java.lang.reflect.Method candidate)

getInheritedMethods

private java.util.List getInheritedMethods(java.lang.Class baseClass)

addNewMapCall

private void addNewMapCall(java.lang.StringBuffer buffer,
                           java.lang.String methodName)

addOverridingMapCall

private void addOverridingMapCall(java.lang.StringBuffer buffer,
                                  java.lang.reflect.Method method)

addMapOrDummyCall

private void addMapOrDummyCall(java.util.Map map,
                               java.lang.StringBuffer buffer,
                               java.lang.reflect.Method method)

addMethodPrefix

private java.lang.Class[] addMethodPrefix(java.lang.StringBuffer buffer,
                                          java.lang.reflect.Method method)

addMethodBody

private void addMethodBody(java.lang.StringBuffer buffer,
                           java.lang.reflect.Method method,
                           java.lang.Class[] parameterTypes)

addWrappedMethodBody

private void addWrappedMethodBody(java.lang.StringBuffer buffer,
                                  java.lang.reflect.Method method,
                                  java.lang.Class[] parameterTypes)

addMethodSuffix

private void addMethodSuffix(java.lang.StringBuffer buffer)

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)

setMetaClass

private static void setMetaClass(MetaClass metaClass)


Copyright © ${year} The Codehaus. All Rights Reserved.