when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult getLink(
- String terminalId,
- String mid,
- double amount,
- String name,
- int mobile,
- String txnType,
- String paymentMode,
- String currency,
- String udf4,
- String udf5,
- String udf6,
- String udf7,
- String udf8,
- String udf9,
- String udf10,
- String callbackUrl,
- String ru,
- String email,
- String merchantTransactionId,
- String transactionDate,
- String productType,
- String txnNote,
- required TResult getInvoiceStatus(
- PgStatusRequest request
A switch-like method, using callbacks.
As opposed to map, this offers destructuring.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case Subclass2(:final field2):
return ...;
}
Implementation
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( String terminalId, String mid, double amount, String name, int mobile, String txnType, String paymentMode, String currency, String udf4, String udf5, String udf6, String udf7, String udf8, String udf9, String udf10, String callbackUrl, String ru, String email, String merchantTransactionId, String transactionDate, String productType, String txnNote) getLink,required TResult Function( PgStatusRequest request) getInvoiceStatus,}) {final _that = this;
switch (_that) {
case _GetLink():
return getLink(_that.terminalId,_that.mid,_that.amount,_that.name,_that.mobile,_that.txnType,_that.paymentMode,_that.currency,_that.udf4,_that.udf5,_that.udf6,_that.udf7,_that.udf8,_that.udf9,_that.udf10,_that.callbackUrl,_that.ru,_that.email,_that.merchantTransactionId,_that.transactionDate,_that.productType,_that.txnNote);case _GetInvoiceStatus():
return getInvoiceStatus(_that.request);case _:
throw StateError('Unexpected subclass');
}
}