eventHandler method

  1. @override
void eventHandler(
  1. Event event
)

Apply an event to update the aggregate state This is called during both command processing and recovery

Implementation

@override
void eventHandler(Event event) {
  // Ensure state is initialized before processing events
  ensureStateInitialized();

  if (event is! ChannelEvent) {
    throw ArgumentError('Expected ChannelEvent, got ${event.runtimeType}');
  }

  switch (event.runtimeType) {
    case ChannelRequestedEvent:
      _applyChannelRequested(event as ChannelRequestedEvent);
      break;
    case ChannelAcceptedEvent:
      _applyChannelAccepted(event as ChannelAcceptedEvent);
      break;
    case ChannelRejectedEvent:
      _applyChannelRejected(event as ChannelRejectedEvent);
      break;
    case ServerAcceptanceRecordedEvent:
      _applyServerAcceptanceRecorded(event as ServerAcceptanceRecordedEvent);
      break;
    case RefundBuiltEvent:
      _applyRefundBuilt(event as RefundBuiltEvent);
      break;
    case RefundCountersignedEvent:
      _applyRefundCountersigned(event as RefundCountersignedEvent);
      break;
    case ChannelOpenedEvent:
      _applyChannelOpened(event as ChannelOpenedEvent);
      break;
    case PaymentRecordedEvent:
      _applyPaymentRecorded(event as PaymentRecordedEvent);
      break;
    case PaymentAcknowledgedEvent:
      _applyPaymentAcknowledged(event as PaymentAcknowledgedEvent);
      break;
    case ChannelClosingEvent:
      _applyChannelClosing(event as ChannelClosingEvent);
      break;
    case ChannelClosedEvent:
      _applyChannelClosed(event as ChannelClosedEvent);
      break;
    case RefundClaimedEvent:
      _applyRefundClaimed(event as RefundClaimedEvent);
      break;
    default:
      throw ArgumentError('Unknown event type: ${event.runtimeType}');
  }
}