public void proceed() { status.proceed(); if (status.getNextInterceptor() != null) { if (status.getNextInterceptor() == AuthInterceptor.class) { status.setProceeding(false); // Replace this with some IOCBeanFactory that will *either* lookup the bean in // the bean manager *or* asynchronously new up the class if it's not managed IOC.getAsyncBeanManager().lookupBeans(AuthInterceptor.class).iterator().next().getInstance(new CreationalCallback { public void callback(AuthInterceptor beanInstance) { beanInstance.aroundInvoke(org_overlord_apiman_dt_api_rest_contract_ISystemResourceImpl.this); if (!status.isProceeding()) { remoteCallback.callback(getResult()); } } }); } if (status.getNextInterceptor() == OtherInterceptor.class) { status.setProceeding(false); IOC.getAsyncBeanManager().lookupBeans(OtherInterceptor.class).iterator().next().getInstance(new CreationalCallback { public void callback(OtherInterceptor beanInstance) { beanInstance.aroundInvoke(org_overlord_apiman_dt_api_rest_contract_ISystemResourceImpl.this); if (!status.isProceeding()) { remoteCallback.callback(getResult()); } } }); } } else { org_overlord_apiman_dt_api_rest_contract_ISystemResourceImpl.this.sendRequest(getRequestBuilder(), null, new ResponseDemarshallingCallback() { public Object demarshallResponse(String response) { return String.valueOf(response); } }); } }