whenOrNull<TResult extends Object?> method
- @optionalTypeArgs
- TResult? getItem(
- String operationId,
- String itemId,
- @RequestDetailsConverter() RequestDetails details,
- DateTime createdAt,
- int attemptNumber,
- TResult? getItems(
- String operationId,
- @RequestDetailsConverter() RequestDetails details,
- DateTime createdAt,
- int attemptNumber,
- TResult? getByIds(
- String operationId,
- Set<
String> itemIds, - @RequestDetailsConverter() RequestDetails details,
- DateTime createdAt,
- int attemptNumber,
- TResult? setItem(
- String operationId,
- @RequestDetailsConverter() RequestDetails details,
- T item,
- DateTime createdAt,
- int attemptNumber,
- TResult? setItems(
- String operationId,
- @RequestDetailsConverter() RequestDetails details,
- Iterable<
T> items, - DateTime createdAt,
- int attemptNumber,
- TResult? delete(
- String operationId,
- String itemId,
- @RequestDetailsConverter() RequestDetails details,
- DateTime createdAt,
- int attemptNumber,
A variant of when that fallback to returning null
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case _:
return null;
}
Implementation
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function( String operationId, String itemId, @RequestDetailsConverter() RequestDetails details, DateTime createdAt, int attemptNumber)? getItem,TResult? Function( String operationId, @RequestDetailsConverter() RequestDetails details, DateTime createdAt, int attemptNumber)? getItems,TResult? Function( String operationId, Set<String> itemIds, @RequestDetailsConverter() RequestDetails details, DateTime createdAt, int attemptNumber)? getByIds,TResult? Function( String operationId, @RequestDetailsConverter() RequestDetails details, T item, DateTime createdAt, int attemptNumber)? setItem,TResult? Function( String operationId, @RequestDetailsConverter() RequestDetails details, Iterable<T> items, DateTime createdAt, int attemptNumber)? setItems,TResult? Function( String operationId, String itemId, @RequestDetailsConverter() RequestDetails details, DateTime createdAt, int attemptNumber)? delete,}) {final _that = this;
switch (_that) {
case ReadOperation() when getItem != null:
return getItem(_that.operationId,_that.itemId,_that.details,_that.createdAt,_that.attemptNumber);case ReadListOperation() when getItems != null:
return getItems(_that.operationId,_that.details,_that.createdAt,_that.attemptNumber);case ReadByIdsOperation() when getByIds != null:
return getByIds(_that.operationId,_that.itemIds,_that.details,_that.createdAt,_that.attemptNumber);case WriteOperation() when setItem != null:
return setItem(_that.operationId,_that.details,_that.item,_that.createdAt,_that.attemptNumber);case WriteListOperation() when setItems != null:
return setItems(_that.operationId,_that.details,_that.items,_that.createdAt,_that.attemptNumber);case DeleteOperation() when delete != null:
return delete(_that.operationId,_that.itemId,_that.details,_that.createdAt,_that.attemptNumber);case _:
return null;
}
}