/** * @see org.carewebframework.api.context.IManagedContext#surveySubscribers(boolean) */ @Override public String surveySubscribers(boolean silent) { StringBuilder result = new StringBuilder(); for (IContextEvent event : getIterable(true)) { try { ContextManager.appendResponse(result, event.pending(silent)); } catch (Throwable e) { log.error("Error during surveysubscribers.", e); ContextManager.appendResponse(result, e.toString()); } surveyed.add(event); // Add to list of surveyed subscribers. if (!silent && result.length() > 0) { break; } } return result.toString(); }
private void surveySubscribers(Iterator<IContextEvent> iter, SurveyResponse response, ISurveyCallback callback) { if ((response.isSilent() || !response.rejected()) && iter.hasNext()) { IContextEvent subscriber = iter.next(); response.reset(__ -> { surveySubscribers(iter, response, callback); }); try { subscriber.pending(response); } catch (Throwable e) { log.error("Error during surveysubscribers.", e); response.reject(e.toString()); } ResponseState state = response.getState(); if (state != ResponseState.DEFERRED) { surveySubscribers(iter, response, callback); } } else if (callback != null) { callback.response(response); } }