maybeWhen<TResult extends Object?> method
TResult
maybeWhen<TResult extends Object?>(
- TResult $default(
- String id,
- bool livemode,
- String paymentMethodType,
- BillingDetails billingDetails,
- @JsonKey.new(name: 'Card') Card card,
- @JsonKey.new(name: 'SepaDebit') SepaDebit sepaDebit,
- @JsonKey.new(name: 'BacsDebit') BacsDebit bacsDebit,
- @JsonKey.new(name: 'AuBecsDebit') AuBecsDebit auBecsDebit,
- @JsonKey.new(name: 'Ideal') Ideal ideal,
- @JsonKey.new(name: 'Fpx') Fpx fpx,
- @JsonKey.new(name: 'USBankAccount') UsBankAccount usBankAccount,
- @JsonKey.new(name: 'Multibanco') Multibanco? multibanco,
- String? customerId,
- required TResult orElse(),
A variant of when that fallback to an orElse callback.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case _:
return orElse();
}
Implementation
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String id, bool livemode, String paymentMethodType, BillingDetails billingDetails, @JsonKey(name: 'Card') Card card, @JsonKey(name: 'SepaDebit') SepaDebit sepaDebit, @JsonKey(name: 'BacsDebit') BacsDebit bacsDebit, @JsonKey(name: 'AuBecsDebit') AuBecsDebit auBecsDebit, @JsonKey(name: 'Ideal') Ideal ideal, @JsonKey(name: 'Fpx') Fpx fpx, @JsonKey(name: 'USBankAccount') UsBankAccount usBankAccount, @JsonKey(name: 'Multibanco') Multibanco? multibanco, String? customerId)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _PaymentMethod() when $default != null:
return $default(_that.id,_that.livemode,_that.paymentMethodType,_that.billingDetails,_that.card,_that.sepaDebit,_that.bacsDebit,_that.auBecsDebit,_that.ideal,_that.fpx,_that.usBankAccount,_that.multibanco,_that.customerId);case _:
return orElse();
}
}