JavassistInvocation.class );
final CtConstructor constructor = new CtConstructor(
JavassistUtils.resolve( new Class[]{ Method.class, Object.class, Object[].class } ),
ctClass );
constructor.setBody( "{\n\tsuper($$);\n}" );
ctClass.addConstructor( constructor );
final CtMethod proceedMethod = new CtMethod( JavassistUtils.resolve( Object.class ), "proceed",
JavassistUtils.resolve( new Class[0] ), ctClass );
final Class[] argumentTypes = interfaceMethod.getParameterTypes();
final StringBuffer proceedBody = new StringBuffer( "{\n" );
if( !Void.TYPE.equals( interfaceMethod.getReturnType() ) )