@Override public void onFailure(final VdcOperation<ActionType, ActionParametersBase> operation, final Throwable caught) { if (ignoreFailure(caught)) { return; } logger.log(Level.SEVERE, "Failed to execute runAction: " + caught, caught); //$NON-NLS-1$ failureEventHandler(caught); FrontendActionAsyncResult f = new FrontendActionAsyncResult(actionType, parameters, null, state); if (callback != null) { callback.executed(f); } fireAsyncActionFailedEvent(state); } });
/** * A convenience method that calls {@link #runMultipleActions(ActionType, List, List, Object, boolean)} with just a single * callback to be called when all actions have succeeded and error aggregation. * * @param actionType The action to be repeated. * @param parameters The parameters of each action. * @param successCallback The callback to be executed when all actions have succeeded. * @param state State object */ public void runMultipleActions(final ActionType actionType, final List<ActionParametersBase> parameters, final IFrontendActionAsyncCallback successCallback, final Object state ) { if (parameters == null || parameters.isEmpty()) { if (successCallback != null) { successCallback.executed(new FrontendActionAsyncResult(actionType, null, null, state)); } return; } int n = parameters.size(); IFrontendActionAsyncCallback[] callbacks = new IFrontendActionAsyncCallback[n]; callbacks[n - 1] = successCallback; runMultipleActions(actionType, parameters, new LinkedList<>(Arrays.asList(callbacks)), state, true); }
@Override protected void executeCallbacks(boolean success, ActionFlowState flowState, List<IFrontendActionAsyncCallback> callbacks) { Collections.shuffle(callbacks); for (IFrontendActionAsyncCallback callback : callbacks) { assertNotAllDone(flowState); ActionReturnValue result = new ActionReturnValue(); result.setValid(true); result.setSucceeded(success); callback.executed(new FrontendActionAsyncResult(ACTION_TYPE, null, result)); } }
logger.log(Level.FINER, "Retrieved action result from RunAction."); //$NON-NLS-1$ FrontendActionAsyncResult f = new FrontendActionAsyncResult(actionType, parameters, result, state); boolean failedOnValidate = !result.isValid(); if (failedOnValidate) {