map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult repoRef(
    1. UReportViewSubjectRepoRef value
    ),
  2. required TResult repoStrongRef(
    1. UReportViewSubjectRepoStrongRef value
    ),
  3. required TResult messageRef(
    1. UReportViewSubjectMessageRef value
    ),
  4. required TResult convoRef(
    1. UReportViewSubjectConvoRef value
    ),
  5. required TResult unknown(
    1. UReportViewSubjectUnknown value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case final Subclass2 value:
    return ...;
}

Implementation

@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( UReportViewSubjectRepoRef value)  repoRef,required TResult Function( UReportViewSubjectRepoStrongRef value)  repoStrongRef,required TResult Function( UReportViewSubjectMessageRef value)  messageRef,required TResult Function( UReportViewSubjectConvoRef value)  convoRef,required TResult Function( UReportViewSubjectUnknown value)  unknown,}){
final _that = this;
switch (_that) {
case UReportViewSubjectRepoRef():
return repoRef(_that);case UReportViewSubjectRepoStrongRef():
return repoStrongRef(_that);case UReportViewSubjectMessageRef():
return messageRef(_that);case UReportViewSubjectConvoRef():
return convoRef(_that);case UReportViewSubjectUnknown():
return unknown(_that);}
}