public Object interceptStateMethod( final Method method, final String event, final Object[] args) { return ((ActorState) state()).invokeEvent(event, args); }
public Task<Void> cancelTransaction(String transactionId) { List<TransactionEvent> newList = new ArrayList<>(); // reset state List<TransactionEvent> events = state().events; createDefaultState(); for (TransactionEvent event : events) { if (event.getTransactionId() == null || !event.getTransactionId().equals(transactionId)) { ActorState state = (ActorState) state(); final Object ret = state.invokeEvent(event.getMethodName(), event.getParams()); if (ret instanceof CompletableFuture) { await((CompletableFuture) ret); } newList.add(event); } } state().events = newList; return Task.done(); }