maybeMap<TResult extends Object?> method

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

A variant of map that fallback to returning orElse.

It is equivalent to doing:

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

Implementation

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

}
}