private <A extends Action<R>, R extends Result> void rollback(ActionResult<A, R> actionResult, ExecutionContext ctx) throws ActionException, ServiceException { if (actionResult.isExecuted()) { dispatch.doUndo(actionResult.getAction(), actionResult.getResult(), ctx); } else { dispatch.doExecute(actionResult.getAction(), ctx); } } }
@Override public <A extends Action<R>, R extends Result> void undo(A action, R result) throws ActionException, ServiceException { dispatch.doExecute(action, this); actionResults.add(new ActionResult<A, R>(action, result, false)); }
@Override public <A extends Action<R>, R extends Result> R execute(A action) throws ActionException, ServiceException { R result = dispatch.doExecute(action, this); actionResults.add(new ActionResult<>(action, result, true)); return result; }
private <A extends Action<R>, R extends Result> void rollback(ActionResult<A, R> actionResult, ExecutionContext ctx) throws ActionException, ServiceException { if (actionResult.isExecuted()) { dispatch.doUndo(actionResult.getAction(), actionResult.getResult(), ctx); } else { dispatch.doExecute(actionResult.getAction(), ctx); } } }
@Override public <A extends Action<R>, R extends Result> void undo(A action, R result) throws ActionException, ServiceException { dispatch.doExecute(action, this); actionResults.add(new ActionResult<>(action, result, false)); }
@Override public <A extends Action<R>, R extends Result> R execute(A action) throws ActionException, ServiceException { R result = dispatch.doExecute(action, this); actionResults.add(new ActionResult<A, R>(action, result, true)); return result; }