when method
MessageHandlerWhenBuilder<M, D, C>
when(
- FutureOr<
bool> condition(- MessageHandlerContext<
M, D, C>
- MessageHandlerContext<
- void buildTrue(
- MessageHandlerBuilder<
M, D, C> builder
- MessageHandlerBuilder<
- String? label,
Describes message handling behavior that may be run conditionally, sharing a context value among conditions.
The returned MessageHandlerWhenBuilder may be used to define additional conditional behavior, including a fallback MessageHandlerWhenBuilder.otherwise condition.
When the message is being processed, the condition functions are evaluated. If the function
returns true, the behavior described by the buildTrue callback will take place. If more
than one condition is defined, the conditions are evaluated in the order they are
defined by calls to MessageHandlerWhenBuilder.when.
Implementation
MessageHandlerWhenBuilder<M, D, C> when(
FutureOr<bool> Function(MessageHandlerContext<M, D, C>) condition,
void Function(MessageHandlerBuilder<M, D, C> builder) buildTrue, {
String? label,
}) {
var conditions = <MessageConditionDescriptor<M, D, C>>[];
var whenBuilder = MessageHandlerWhenBuilder<M, D, C>(
() => MessageHandlerBuilder<M, D, C>(_forState, _makeContext, _log, _messageName),
conditions,
);
whenBuilder.when(condition, buildTrue, label: label);
descriptor =
makeWhenMessageDescriptor<M, D, C>(conditions, _makeContext, _log, label, _messageName);
return whenBuilder;
}