when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>({
  1. required TResult systemMessageDataAddMember(
    1. SystemMessageDataAddMember data
    ),
  2. required TResult systemMessageDataRemoveMember(
    1. SystemMessageDataRemoveMember data
    ),
  3. required TResult systemMessageDataMemberJoin(
    1. SystemMessageDataMemberJoin data
    ),
  4. required TResult systemMessageDataMemberLeave(
    1. SystemMessageDataMemberLeave data
    ),
  5. required TResult systemMessageDataLockConvo(
    1. SystemMessageDataLockConvo data
    ),
  6. required TResult systemMessageDataUnlockConvo(
    1. SystemMessageDataUnlockConvo data
    ),
  7. required TResult systemMessageDataLockConvoPermanently(
    1. SystemMessageDataLockConvoPermanently data
    ),
  8. required TResult systemMessageDataEditGroup(
    1. SystemMessageDataEditGroup data
    ),
  9. required TResult systemMessageDataCreateJoinLink(
    1. SystemMessageDataCreateJoinLink data
    ),
  10. required TResult systemMessageDataEditJoinLink(
    1. SystemMessageDataEditJoinLink data
    ),
  11. required TResult systemMessageDataEnableJoinLink(
    1. SystemMessageDataEnableJoinLink data
    ),
  12. required TResult systemMessageDataDisableJoinLink(
    1. SystemMessageDataDisableJoinLink data
    ),
  13. required TResult unknown(
    1. Map<String, dynamic> data
    ),
})

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( SystemMessageDataAddMember data)  systemMessageDataAddMember,required TResult Function( SystemMessageDataRemoveMember data)  systemMessageDataRemoveMember,required TResult Function( SystemMessageDataMemberJoin data)  systemMessageDataMemberJoin,required TResult Function( SystemMessageDataMemberLeave data)  systemMessageDataMemberLeave,required TResult Function( SystemMessageDataLockConvo data)  systemMessageDataLockConvo,required TResult Function( SystemMessageDataUnlockConvo data)  systemMessageDataUnlockConvo,required TResult Function( SystemMessageDataLockConvoPermanently data)  systemMessageDataLockConvoPermanently,required TResult Function( SystemMessageDataEditGroup data)  systemMessageDataEditGroup,required TResult Function( SystemMessageDataCreateJoinLink data)  systemMessageDataCreateJoinLink,required TResult Function( SystemMessageDataEditJoinLink data)  systemMessageDataEditJoinLink,required TResult Function( SystemMessageDataEnableJoinLink data)  systemMessageDataEnableJoinLink,required TResult Function( SystemMessageDataDisableJoinLink data)  systemMessageDataDisableJoinLink,required TResult Function( Map<String, dynamic> data)  unknown,}) {final _that = this;
switch (_that) {
case USystemMessageViewDataSystemMessageDataAddMember():
return systemMessageDataAddMember(_that.data);case USystemMessageViewDataSystemMessageDataRemoveMember():
return systemMessageDataRemoveMember(_that.data);case USystemMessageViewDataSystemMessageDataMemberJoin():
return systemMessageDataMemberJoin(_that.data);case USystemMessageViewDataSystemMessageDataMemberLeave():
return systemMessageDataMemberLeave(_that.data);case USystemMessageViewDataSystemMessageDataLockConvo():
return systemMessageDataLockConvo(_that.data);case USystemMessageViewDataSystemMessageDataUnlockConvo():
return systemMessageDataUnlockConvo(_that.data);case USystemMessageViewDataSystemMessageDataLockConvoPermanently():
return systemMessageDataLockConvoPermanently(_that.data);case USystemMessageViewDataSystemMessageDataEditGroup():
return systemMessageDataEditGroup(_that.data);case USystemMessageViewDataSystemMessageDataCreateJoinLink():
return systemMessageDataCreateJoinLink(_that.data);case USystemMessageViewDataSystemMessageDataEditJoinLink():
return systemMessageDataEditJoinLink(_that.data);case USystemMessageViewDataSystemMessageDataEnableJoinLink():
return systemMessageDataEnableJoinLink(_that.data);case USystemMessageViewDataSystemMessageDataDisableJoinLink():
return systemMessageDataDisableJoinLink(_that.data);case USystemMessageViewDataUnknown():
return unknown(_that.data);}
}