when<TResult extends Object?> method
- @optionalTypeArgs
- required TResult shown(),
- required TResult unchanged(),
- required TResult refused(),
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( String beadId, String title, IssueType issueType, BeadStatus status, int priority, String description, String design, String acceptanceCriteria, String notes, Map<String, String?> approval, List<BeadDependency> dependencies, String? revision, Map<String, int> withheld) shown,required TResult Function( String beadId, String revision) unchanged,required TResult Function( String beadId, String reason, int withheldReasonBytes) refused,}) {final _that = this;
switch (_that) {
case BeadShown():
return shown(_that.beadId,_that.title,_that.issueType,_that.status,_that.priority,_that.description,_that.design,_that.acceptanceCriteria,_that.notes,_that.approval,_that.dependencies,_that.revision,_that.withheld);case ShowUnchanged():
return unchanged(_that.beadId,_that.revision);case ShowRefused():
return refused(_that.beadId,_that.reason,_that.withheldReasonBytes);}
}