MetaMethod implementation that delegates to real MetaMethod implementation. This can be used to efficiently proxy a metamethod from another metaClass in methodMissing. An example can be found in FilterConfig's methodMissing . Without this class it's hard to implement efficient methodMissing "caching" supporting methods with multiple signatures (same method name, different set of arguments). This class could be moved to org.codehaus.groovy.grails.commons.metaclass for reuse.
Constructor and description |
---|
DelegateMetaMethod
(groovy.lang.MetaMethod delegateMethod, DelegateMetaMethod.DelegateMetaMethodTargetStrategy targetStrategy) |
Type | Name and description |
---|---|
void |
checkParameters(java.lang.Class[] arguments) |
java.lang.Object |
clone() |
java.lang.Object[] |
correctArguments(java.lang.Object[] argumentArray) |
java.lang.Object |
doMethodInvoke(java.lang.Object object, java.lang.Object[] argumentArray) |
boolean |
equals(java.lang.Object obj) |
org.codehaus.groovy.reflection.CachedClass |
getDeclaringClass() |
java.lang.String |
getDescriptor() |
int |
getModifiers() |
java.lang.String |
getMopName() |
java.lang.String |
getName() |
java.lang.Class[] |
getNativeParameterTypes() |
org.codehaus.groovy.reflection.CachedClass[] |
getParameterTypes() |
java.lang.Class |
getReturnType() |
java.lang.String |
getSignature() |
java.lang.Object |
invoke(java.lang.Object object, java.lang.Object[] arguments) |
boolean |
isAbstract() |
boolean |
isCacheable() |
boolean |
isMethod(groovy.lang.MetaMethod method) |
boolean |
isStatic() |
boolean |
isValidExactMethod(java.lang.Object[] args) |
boolean |
isValidExactMethod(java.lang.Class[] args) |
boolean |
isValidMethod(java.lang.Class[] arguments) |
boolean |
isValidMethod(java.lang.Object[] arguments) |
boolean |
isVargsMethod(java.lang.Object[] arguments) |
java.lang.String |
toString() |
Methods inherited from class | Name |
---|---|
class groovy.lang.MetaMethod |
groovy.lang.MetaMethod#checkParameters([Ljava.lang.Class;), groovy.lang.MetaMethod#isSame(groovy.lang.MetaMethod), groovy.lang.MetaMethod#isCacheable(), groovy.lang.MetaMethod#getMopName(), groovy.lang.MetaMethod#processDoMethodInvokeException(java.lang.Exception, java.lang.Object, [Ljava.lang.Object;), groovy.lang.MetaMethod#doMethodInvoke(java.lang.Object, [Ljava.lang.Object;), groovy.lang.MetaMethod#invoke(java.lang.Object, [Ljava.lang.Object;), groovy.lang.MetaMethod#toString(), groovy.lang.MetaMethod#clone(), groovy.lang.MetaMethod#getModifiers(), groovy.lang.MetaMethod#getName(), groovy.lang.MetaMethod#getDeclaringClass(), groovy.lang.MetaMethod#isMethod(groovy.lang.MetaMethod), groovy.lang.MetaMethod#getDescriptor(), groovy.lang.MetaMethod#getReturnType(), groovy.lang.MetaMethod#isAbstract(), groovy.lang.MetaMethod#isProtected(), groovy.lang.MetaMethod#getSignature(), groovy.lang.MetaMethod#isStatic(), groovy.lang.MetaMethod#isPublic(), groovy.lang.MetaMethod#isPrivate(), groovy.lang.MetaMethod#isValidMethod([Ljava.lang.Class;), groovy.lang.MetaMethod#isValidMethod([Ljava.lang.Object;), groovy.lang.MetaMethod#coerceArgumentsToClasses([Ljava.lang.Object;), groovy.lang.MetaMethod#isVargsMethod([Ljava.lang.Object;), groovy.lang.MetaMethod#isVargsMethod(), groovy.lang.MetaMethod#correctArguments([Ljava.lang.Object;), groovy.lang.MetaMethod#isValidExactMethod([Ljava.lang.Object;), groovy.lang.MetaMethod#isValidExactMethod([Ljava.lang.Class;), groovy.lang.MetaMethod#getNativeParameterTypes(), groovy.lang.MetaMethod#getParameterTypes(), groovy.lang.MetaMethod#wait(long, int), groovy.lang.MetaMethod#wait(long), groovy.lang.MetaMethod#wait(), groovy.lang.MetaMethod#equals(java.lang.Object), groovy.lang.MetaMethod#hashCode(), groovy.lang.MetaMethod#getClass(), groovy.lang.MetaMethod#notify(), groovy.lang.MetaMethod#notifyAll() |
class org.codehaus.groovy.reflection.ParameterTypes |
org.codehaus.groovy.reflection.ParameterTypes#isValidMethod([Ljava.lang.Class;), org.codehaus.groovy.reflection.ParameterTypes#isValidMethod([Ljava.lang.Object;), org.codehaus.groovy.reflection.ParameterTypes#coerceArgumentsToClasses([Ljava.lang.Object;), org.codehaus.groovy.reflection.ParameterTypes#isVargsMethod([Ljava.lang.Object;), org.codehaus.groovy.reflection.ParameterTypes#isVargsMethod(), org.codehaus.groovy.reflection.ParameterTypes#correctArguments([Ljava.lang.Object;), org.codehaus.groovy.reflection.ParameterTypes#isValidExactMethod([Ljava.lang.Object;), org.codehaus.groovy.reflection.ParameterTypes#isValidExactMethod([Ljava.lang.Class;), org.codehaus.groovy.reflection.ParameterTypes#getNativeParameterTypes(), org.codehaus.groovy.reflection.ParameterTypes#getParameterTypes(), org.codehaus.groovy.reflection.ParameterTypes#wait(long, int), org.codehaus.groovy.reflection.ParameterTypes#wait(long), org.codehaus.groovy.reflection.ParameterTypes#wait(), org.codehaus.groovy.reflection.ParameterTypes#equals(java.lang.Object), org.codehaus.groovy.reflection.ParameterTypes#toString(), org.codehaus.groovy.reflection.ParameterTypes#hashCode(), org.codehaus.groovy.reflection.ParameterTypes#getClass(), org.codehaus.groovy.reflection.ParameterTypes#notify(), org.codehaus.groovy.reflection.ParameterTypes#notifyAll() |