private void execCallback(ISurveyCallback callback, Exception e) { execCallback(callback, new SurveyResponse(e.toString())); }
private void reset(boolean silent, Iterator<IManagedContext<?>> iter, SurveyResponse response, ISurveyCallback callback) { if (iter.hasNext()) { IManagedContext<?> managedContext = iter.next(); resetItem(managedContext, silent, aresponse -> { response.merge(aresponse); if (silent || !response.rejected()) { reset(silent, iter, response, callback); } else { execCallback(callback, response); } }); } else { execCallback(callback, response); } }
/** * @see org.carewebframework.api.context.IContextManager#reset */ @Override public void reset(boolean silent, ISurveyCallback callback) { pendingStack.clear(); commitStack.clear(); SurveyResponse response = new SurveyResponse(); Iterator<IManagedContext<?>> iter = managedContexts.iterator(); reset(silent, iter, response, __ -> { boolean commit = silent || !response.rejected(); commitContexts(commit, commit); execCallback(callback, response); }); }
execCallback(callback, response); });
/** * Resets the managed context. * * @param item Managed context to reset. * @param silent Silent flag. * @param callback Callback for polling. */ private void resetItem(IManagedContext<?> item, boolean silent, ISurveyCallback callback) { try { localChangeBegin(item); item.reset(); localChangeEnd(item, silent, true, callback); } catch (ContextException e) { execCallback(callback, e); } }
private void setMarshaledContext(ContextItems marshaledContext, Iterator<IManagedContext<?>> iter, ISurveyResponse response, ISurveyCallback callback) { if (iter.hasNext()) { IManagedContext<?> managedContext = iter.next(); try { if (managedContext.setContextItems(marshaledContext)) { localChangeBegin(managedContext); localChangeEnd(managedContext, true, true, aresponse -> { response.merge(aresponse); setMarshaledContext(marshaledContext, iter, response, callback); }); } } catch (Exception e) { log.error("Error processing marshaled context change.", e); response.reject(e.toString()); setMarshaledContext(marshaledContext, iter, response, callback); } } else { execCallback(callback, response); } }
/** * Initializes the managed context. * * @param item Managed context to initialize. * @param callback Callback to report subscriber responses. */ private void initItem(IManagedContext<?> item, ISurveyCallback callback) { try { localChangeBegin(item); if (hasSubject(item.getContextName())) { item.setContextItems(contextItems); } else { item.init(); } localChangeEnd(item, callback); } catch (ContextException e) { log.error("Error initializing context.", e); execCallback(callback, new SurveyResponse(e.toString())); } }