MethodProxy (cglib (Version 2.2.2))
Keywords: net.sf.cglib.proxy.MethodProxy class

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.cglib.proxy
Class MethodProxy

    java.lang.Object
      net.sf.cglib.proxy.MethodProxy

    public class MethodProxy

extends java.lang.Object

Classes generated by `Enhancer` pass this object to the registered `MethodInterceptor` objects when an intercepted method is invoked. It can be used to either invoke the original method, or call the same method on a different object of the same type.

Version:
  $Id: MethodProxy.java,v 1.16 2009/01/11 20:09:48 herbyderby Exp $

Method Summary
`static MethodProxy` | `create(java.lang.Class c1, java.lang.Class c2, java.lang.String desc, java.lang.String name1, java.lang.String name2)` For internal use by `Enhancer` only; see the `FastMethod` class for similar functionality.
`static MethodProxy` | `find(java.lang.Class type, Signature sig)` Return the `MethodProxy` used when intercepting the method matching the given signature.
`Signature` | `getSignature()` Return the signature of the proxied method.
`int` | `getSuperIndex()` Return the `FastClass` method index for the method used by `invokeSuper(java.lang.Object, java.lang.Object[])`.
`java.lang.String` | `getSuperName()` Return the name of the synthetic method created by CGLIB which is used by `invokeSuper(java.lang.Object, java.lang.Object[])` to invoke the superclass (non-intercepted) method implementation.
`java.lang.Object` | `invoke(java.lang.Object obj, java.lang.Object[] args)` Invoke the original method, on a different object of the same type.
`java.lang.Object` | `invokeSuper(java.lang.Object obj, java.lang.Object[] args)` Invoke the original (super) method on the specified object.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### create

    public static MethodProxy create(java.lang.Class c1,
                                     java.lang.Class c2,
                                     java.lang.String desc,
                                     java.lang.String name1,
                                     java.lang.String name2)

  For internal use by `Enhancer` only; see the `FastMethod` class for similar functionality.

### getSignature

    public Signature getSignature()

  Return the signature of the proxied method.

### getSuperName

    public java.lang.String getSuperName()

  Return the name of the synthetic method created by CGLIB which is used by `invokeSuper(java.lang.Object, java.lang.Object[])` to invoke the superclass (non-intercepted) method implementation. The parameter types are the same as the proxied method.

### getSuperIndex

    public int getSuperIndex()

  Return the `FastClass` method index for the method used by `invokeSuper(java.lang.Object, java.lang.Object[])`. This index uniquely identifies the method within the generated proxy, and therefore can be useful to reference external metadata.

  See Also:
    `getSuperName()`

### find

    public static MethodProxy find(java.lang.Class type,
                                   Signature sig)

  Return the `MethodProxy` used when intercepting the method matching the given signature.

  Parameters:
    `type` - the class generated by Enhancer
    `sig` - the signature to match
  Returns:
    the MethodProxy instance, or null if no applicable matching method is found
  Throws:
    `java.lang.IllegalArgumentException` - if the Class was not created by Enhancer or does not use a MethodInterceptor

### invoke

    public java.lang.Object invoke(java.lang.Object obj,
                                   java.lang.Object[] args)
                            throws java.lang.Throwable

  Invoke the original method, on a different object of the same type.

  Parameters:
    `obj` - the compatible object; recursion will result if you use the object passed as the first argument to the MethodInterceptor (usually not what you want)
    `args` - the arguments passed to the intercepted method; you may substitute a different argument array as long as the types are compatible
  Throws:
    `java.lang.Throwable` - the bare exceptions thrown by the called method are passed through without wrapping in an `InvocationTargetException`
  See Also:
    `MethodInterceptor.intercept(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy)`

### invokeSuper

    public java.lang.Object invokeSuper(java.lang.Object obj,
                                        java.lang.Object[] args)
                                 throws java.lang.Throwable

  Invoke the original (super) method on the specified object.

  Parameters:
    `obj` - the enhanced object, must be the object passed as the first argument to the MethodInterceptor
    `args` - the arguments passed to the intercepted method; you may substitute a different argument array as long as the types are compatible
  Throws:
    `java.lang.Throwable` - the bare exceptions thrown by the called method are passed through without wrapping in an `InvocationTargetException`
  See Also:
    `MethodInterceptor.intercept(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy)`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2001 - Apache Software Foundation