e.invoke_interface(DISPATCHER, LOAD_OBJECT);
if (proxyRef) { e.load_this(); e.invoke_interface(PROXY_REF_DISPATCHER, PROXY_REF_LOAD_OBJECT); } else { e.invoke_interface(DISPATCHER, LOAD_OBJECT); }
    public void generate(ClassEmitter ce, final Context context) {        for (Iterator it = context.getMethods(); it.hasNext();) {            MethodInfo method = (MethodInfo)it.next();            if (TypeUtils.isProtected(method.getModifiers())) {                // ignore protected methods            } else {                CodeEmitter e = EmitUtils.begin_method(ce, method);                context.emitCallback(e, context.getIndex(method));                e.invoke_interface(DISPATCHER, LOAD_OBJECT);                e.checkcast(method.getClassInfo().getType());                e.load_args();                e.invoke(method);                e.return_value();                e.end_method();            }        }    }