map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult paragraph(
    1. RichBlockParagraph value
    ),
  2. required TResult heading(
    1. RichBlockSectionHeading value
    ),
  3. required TResult pre(
    1. RichBlockPreformatted value
    ),
  4. required TResult footer(
    1. RichBlockFooter value
    ),
  5. required TResult divider(
    1. RichBlockDivider value
    ),
  6. required TResult mathematicalExpression(
    1. RichBlockMathematicalExpression value
    ),
  7. required TResult anchor(
    1. RichBlockAnchor value
    ),
  8. required TResult list(
    1. RichBlockList value
    ),
  9. required TResult blockquote(
    1. RichBlockBlockQuotation value
    ),
  10. required TResult pullquote(
    1. RichBlockPullQuotation value
    ),
  11. required TResult collage(
    1. RichBlockCollage value
    ),
  12. required TResult slideshow(
    1. RichBlockSlideshow value
    ),
  13. required TResult table(
    1. RichBlockTable value
    ),
  14. required TResult details(
    1. RichBlockDetails value
    ),
  15. required TResult map(
    1. RichBlockMap value
    ),
  16. required TResult animation(
    1. RichBlockAnimation value
    ),
  17. required TResult audio(
    1. RichBlockAudio value
    ),
  18. required TResult photo(
    1. RichBlockPhoto value
    ),
  19. required TResult video(
    1. RichBlockVideo value
    ),
  20. required TResult voiceNote(
    1. RichBlockVoiceNote value
    ),
  21. required TResult thinking(
    1. RichBlockThinking 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(RichBlockParagraph value) paragraph,
  required TResult Function(RichBlockSectionHeading value) heading,
  required TResult Function(RichBlockPreformatted value) pre,
  required TResult Function(RichBlockFooter value) footer,
  required TResult Function(RichBlockDivider value) divider,
  required TResult Function(RichBlockMathematicalExpression value)
  mathematicalExpression,
  required TResult Function(RichBlockAnchor value) anchor,
  required TResult Function(RichBlockList value) list,
  required TResult Function(RichBlockBlockQuotation value) blockquote,
  required TResult Function(RichBlockPullQuotation value) pullquote,
  required TResult Function(RichBlockCollage value) collage,
  required TResult Function(RichBlockSlideshow value) slideshow,
  required TResult Function(RichBlockTable value) table,
  required TResult Function(RichBlockDetails value) details,
  required TResult Function(RichBlockMap value) map,
  required TResult Function(RichBlockAnimation value) animation,
  required TResult Function(RichBlockAudio value) audio,
  required TResult Function(RichBlockPhoto value) photo,
  required TResult Function(RichBlockVideo value) video,
  required TResult Function(RichBlockVoiceNote value) voiceNote,
  required TResult Function(RichBlockThinking value) thinking,
}) {
  final _that = this;
  switch (_that) {
    case RichBlockParagraph():
      return paragraph(_that);
    case RichBlockSectionHeading():
      return heading(_that);
    case RichBlockPreformatted():
      return pre(_that);
    case RichBlockFooter():
      return footer(_that);
    case RichBlockDivider():
      return divider(_that);
    case RichBlockMathematicalExpression():
      return mathematicalExpression(_that);
    case RichBlockAnchor():
      return anchor(_that);
    case RichBlockList():
      return list(_that);
    case RichBlockBlockQuotation():
      return blockquote(_that);
    case RichBlockPullQuotation():
      return pullquote(_that);
    case RichBlockCollage():
      return collage(_that);
    case RichBlockSlideshow():
      return slideshow(_that);
    case RichBlockTable():
      return table(_that);
    case RichBlockDetails():
      return details(_that);
    case RichBlockMap():
      return map(_that);
    case RichBlockAnimation():
      return animation(_that);
    case RichBlockAudio():
      return audio(_that);
    case RichBlockPhoto():
      return photo(_that);
    case RichBlockVideo():
      return video(_that);
    case RichBlockVoiceNote():
      return voiceNote(_that);
    case RichBlockThinking():
      return thinking(_that);
  }
}