whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
  1. TResult? item(
    1. BarcodeData barcodeData,
    2. DateTime createdAt,
    3. double weight,
    4. String itemVersion,
    5. UnitTileData unitTileData,
    6. List<UnitServer> servers,
    7. String? parentSSCCCodeId,
    8. SpecialProcess? specialProcess,
    )?,
  2. TResult? ssCC(
    1. BarcodeData barcodeData,
    2. DateTime createdAt,
    3. String unitVersion,
    4. HuDetails? huDetails,
    5. PackingInstruction? packingInstruction,
    6. UnitTileData unitTileData,
    7. UnitStatusData statusData,
    8. List<UnitServer> servers,
    9. List<UnitItem> unitItems,
    10. List<UnitSSCC> subHUs,
    11. bool isSubHu,
    12. List<MaterialDescription> materialDescriptions,
    )?,
  3. TResult? ph(
    1. BarcodeData barcodeData,
    2. DateTime createdAt,
    3. UnitTileData unitTileData,
    4. List<UnitServer> servers,
    5. List<String> assignedSSCCs,
    6. HuDetails? huDetails,
    )?,
})

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( BarcodeData barcodeData,  DateTime createdAt,  double weight,  String itemVersion,  UnitTileData unitTileData,  List<UnitServer> servers,  String? parentSSCCCodeId,  SpecialProcess? specialProcess)?  item,TResult? Function( BarcodeData barcodeData,  DateTime createdAt,  String unitVersion,  HuDetails? huDetails,  PackingInstruction? packingInstruction,  UnitTileData unitTileData,  UnitStatusData statusData,  List<UnitServer> servers,  List<UnitItem> unitItems,  List<UnitSSCC> subHUs,  bool isSubHu,  List<MaterialDescription> materialDescriptions)?  ssCC,TResult? Function( BarcodeData barcodeData,  DateTime createdAt,  UnitTileData unitTileData,  List<UnitServer> servers,  List<String> assignedSSCCs,  HuDetails? huDetails)?  ph,}) {final _that = this;
switch (_that) {
case UnitItem() when item != null:
return item(_that.barcodeData,_that.createdAt,_that.weight,_that.itemVersion,_that.unitTileData,_that.servers,_that.parentSSCCCodeId,_that.specialProcess);case UnitSSCC() when ssCC != null:
return ssCC(_that.barcodeData,_that.createdAt,_that.unitVersion,_that.huDetails,_that.packingInstruction,_that.unitTileData,_that.statusData,_that.servers,_that.unitItems,_that.subHUs,_that.isSubHu,_that.materialDescriptions);case UnitPH() when ph != null:
return ph(_that.barcodeData,_that.createdAt,_that.unitTileData,_that.servers,_that.assignedSSCCs,_that.huDetails);case _:
  return null;

}
}