moar
This commit is contained in:
@@ -14,6 +14,10 @@ public interface StateMachineService {
|
||||
// Quirky pattern 2: Generic Varargs
|
||||
<T extends IEvent> void sendEventsVarargs(T... events);
|
||||
|
||||
// Functional quirks: passing functions and method references
|
||||
<T extends IEvent> void executeFunctionalTransition(java.util.function.Supplier<T> eventSupplier,
|
||||
java.util.function.Function<T, Void> transitionAction);
|
||||
|
||||
// Child class of Spring's GenericMessage with a generic payload
|
||||
<T extends click.kamil.domain.OrderEvent, P> void sendCustomMessage(click.kamil.domain.CustomStateMachineMessage<T, P> customMessage);
|
||||
|
||||
|
||||
@@ -59,6 +59,15 @@ public class StateMachineServiceImpl implements StateMachineService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends IEvent> void executeFunctionalTransition(java.util.function.Supplier<T> eventSupplier,
|
||||
java.util.function.Function<T, Void> transitionAction) {
|
||||
// Resolve the event from the getter / supplier function
|
||||
T event = eventSupplier.get();
|
||||
// Apply the transition via the provided function / method reference
|
||||
transitionAction.apply(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends OrderEvent, P> void sendCustomMessage(click.kamil.domain.CustomStateMachineMessage<T, P> customMessage) {
|
||||
// Because CustomStateMachineMessage extends GenericMessage<T> and implements Message<T>,
|
||||
|
||||
Reference in New Issue
Block a user