maybeWhen<TResult extends Object?> method Null safety

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  1. {TResult track(
    1. String name,
    2. String sortableName,
    3. Duration duration,
    4. int trackNumber,
    5. MediaIcon? icon,
    6. RightsInfo rightsInfo,
    7. String albumId,
    8. String albumName,
    9. String artistId,
    10. String artistName,
    11. Explicitness explicitness,
    12. String shareableUrlPath,
    13. bool hasRadio,
    14. DateTime modificationTime,
    15. String slugPlusPandoraId,
    16. String isrc,
    17. String pandoraId,
    18. Scope scope
    )?,
  2. TResult artist(
    1. String name,
    2. String sortableName,
    3. int trackCount,
    4. int albumCount,
    5. MediaIcon? icon,
    6. String shareableUrlPath,
    7. String? twitterHandle,
    8. bool hasRadio,
    9. DateTime modificationTime,
    10. String slugPlusPandoraId,
    11. bool collaboration,
    12. List<String> primaryArtistIds,
    13. bool variousArtist,
    14. bool megastar,
    15. bool hasTakeoverModes,
    16. String pandoraId,
    17. Scope scope
    )?,
  3. TResult album(
    1. String name,
    2. String sortableName,
    3. DateTime? releaseDate,
    4. Duration duration,
    5. int trackCount,
    6. bool isCompilation,
    7. MediaIcon? icon,
    8. RightsInfo rightsInfo,
    9. List<String> trackIds,
    10. String artistId,
    11. String artistName,
    12. Explicitness explicitness,
    13. String shareableUrlPath,
    14. DateTime modificationTime,
    15. String slugPlusPandoraId,
    16. bool hasRadio,
    17. String releaseType,
    18. String listenerReleaseType,
    19. String pandoraId,
    20. Scope scope
    )?,
  4. TResult artistMessage(
    1. String name,
    2. String sortableName,
    3. Duration duration,
    4. MediaIcon? icon,
    5. MediaIcon? tileIcon,
    6. String authorId,
    7. String authorName,
    8. RightsInfo rightsInfo,
    9. DeliveryType deliveryType,
    10. String? playsWithTrackId,
    11. DateTime modificationTime,
    12. ContentState contentState,
    13. String pandoraId,
    14. Scope scope
    )?,
  5. TResult genre(
    1. String name,
    2. String sortableName,
    3. MediaIcon? icon,
    4. DateTime modificationTime,
    5. String description,
    6. int stationListenerCount,
    7. String shareableUrlPath,
    8. bool hasTakeoverModes,
    9. bool hasCuratedModes,
    10. String pandoraId,
    11. Scope scope
    )?,
  6. TResult playlist(
    1. String name,
    2. bool allowFeedback,
    3. bool autogenForListener,
    4. bool collectible,
    5. String? description,
    6. Duration duration,
    7. List<PandoraType> includedTrackTypes,
    8. bool isPrivate,
    9. PlaylistLinkedType linkedType,
    10. int listenerId,
    11. ListenerIdInfo listenerIdInfo,
    12. String listenerIdToken,
    13. String listenerPandoraId,
    14. bool secret,
    15. String shareableUrlPath,
    16. String thorLayers,
    17. DateTime timeCreated,
    18. DateTime? timeLastPlayed,
    19. DateTime? timeLastUpdated,
    20. int totalTracks,
    21. bool unlocked,
    22. PlaylistViewerInfo? viewerInfo,
    23. String pandoraId,
    24. Scope scope
    )?,
  7. TResult station(
    1. String name,
    2. String stationId,
    3. int listenerId,
    4. String listenerPandoraId,
    5. String? initialSeedId,
    6. bool isQuickMix,
    7. bool isThumbprint,
    8. bool hasCuratedModes,
    9. MediaIcon? icon,
    10. String pandoraId
    )?,
  8. TResult podcast(
    1. String name,
    2. String sortableName,
    3. MediaIcon? icon,
    4. DateTime modificationTime,
    5. String publisherName,
    6. String publisherId,
    7. String ordering,
    8. int episodeCount,
    9. String shelfLife,
    10. List<String> categoryPandoraIds,
    11. String shareableUrlPath,
    12. String slugPlusPandoraId,
    13. ContentState contentState,
    14. RightsInfo rightsInfo,
    15. bool sxmEnabled,
    16. String? sxmChannelId,
    17. String? latestEpisodePandoraId,
    18. List<Object> exclusivityGroups,
    19. String pandoraId,
    20. Scope scope
    )?,
  9. TResult podcastCategory(
    1. String name,
    2. List<String> aliases,
    3. MediaIcon? icon,
    4. DateTime modificationTime,
    5. String pandoraId,
    6. String scope
    )?,
  10. TResult episode(
    1. String name,
    2. String sortableName,
    3. MediaIcon? icon,
    4. DateTime modificationTime,
    5. String programName,
    6. String summary,
    7. DateTime? releaseDate,
    8. String podcastPandoraId,
    9. Duration duration,
    10. RightsInfo rightsInfo,
    11. Explicitness explicitness,
    12. String shareableUrlPath,
    13. String slugPlusPandoraId,
    14. ContentState contentState,
    15. List<Object> adBreaks,
    16. List<Object> exclusivityGroups,
    17. String pandoraId,
    18. Scope scope
    )?,
  11. TResult curator(
    1. String name,
    2. String sortableName,
    3. MediaIcon? icon,
    4. int listenerId,
    5. String listenerPandoraId,
    6. String pandoraId,
    7. String scope
    )?,
  12. TResult composer(
    1. String name,
    2. String sortableName,
    3. MediaIcon? icon,
    4. bool hasRadio,
    5. int albumCount,
    6. int trackCount,
    7. String shareableUrlPath,
    8. DateTime modificationTime,
    9. String slugPlusPandoraId,
    10. String pandoraId,
    11. String scope
    )?,
  13. TResult listener(
    1. int listenerId,
    2. String webname,
    3. String? fullName,
    4. String displayName,
    5. String? biography,
    6. Uri? defaultImageUrl,
    7. Uri? imageUrl,
    8. String pandoraId
    )?,
  14. required TResult orElse(
      )}
    )
    inherited

    Implementation

    @optionalTypeArgs
    TResult maybeWhen<TResult extends Object?>({
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'duration', fromJson: readSeconds, toJson: writeSeconds)
                  Duration duration,
              @JsonKey(name: 'trackNumber')
                  int trackNumber,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'rightsInfo')
                  RightsInfo rightsInfo,
              @JsonKey(name: 'albumId')
                  String albumId,
              @JsonKey(name: 'albumName')
                  String albumName,
              @JsonKey(name: 'artistId')
                  String artistId,
              @JsonKey(name: 'artistName')
                  String artistName,
              @JsonKey(name: 'explicitness')
                  Explicitness explicitness,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'hasRadio', fromJson: readOptInBool, toJson: writeOptInBool)
                  bool hasRadio,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'slugPlusPandoraId')
                  String slugPlusPandoraId,
              @JsonKey(name: 'isrc')
                  String isrc,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          track,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'trackCount')
                  int trackCount,
              @JsonKey(name: 'albumCount')
                  int albumCount,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'twitterHandle')
                  String? twitterHandle,
              @JsonKey(name: 'hasRadio', fromJson: readOptInBool, toJson: writeOptInBool)
                  bool hasRadio,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'slugPlusPandoraId')
                  String slugPlusPandoraId,
              @JsonKey(name: 'collaboration')
                  bool collaboration,
              @JsonKey(name: 'primaryArtists')
                  List<String> primaryArtistIds,
              @JsonKey(name: 'variousArtist')
                  bool variousArtist,
              @JsonKey(name: 'megastar')
                  bool megastar,
              @JsonKey(name: 'hasTakeoverModes')
                  bool hasTakeoverModes,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          artist,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'releaseDate')
                  DateTime? releaseDate,
              @JsonKey(name: 'duration', fromJson: readSeconds, toJson: writeSeconds)
                  Duration duration,
              @JsonKey(name: 'trackCount')
                  int trackCount,
              @JsonKey(name: 'isCompilation')
                  bool isCompilation,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'rightsInfo')
                  RightsInfo rightsInfo,
              @JsonKey(name: 'tracks')
                  List<String> trackIds,
              @JsonKey(name: 'artistId')
                  String artistId,
              @JsonKey(name: 'artistName')
                  String artistName,
              @JsonKey(name: 'explicitness')
                  Explicitness explicitness,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'slugPlusPandoraId')
                  String slugPlusPandoraId,
              @JsonKey(name: 'hasRadio', fromJson: readOptInBool, toJson: writeOptInBool)
                  bool hasRadio,
              @JsonKey(name: 'releaseType')
                  String releaseType,
              @JsonKey(name: 'listenerReleaseType')
                  String listenerReleaseType,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          album,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'duration', fromJson: readSeconds, toJson: writeSeconds)
                  Duration duration,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'tileIcon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? tileIcon,
              @JsonKey(name: 'authorId')
                  String authorId,
              @JsonKey(name: 'authorName')
                  String authorName,
              @JsonKey(name: 'rightsInfo')
                  RightsInfo rightsInfo,
              @JsonKey(name: 'deliveryType')
                  DeliveryType deliveryType,
              @JsonKey(name: 'playsWithTrackPandoraId')
                  String? playsWithTrackId,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'contentState')
                  ContentState contentState,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          artistMessage,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'description')
                  String description,
              @JsonKey(name: 'stationListenerCount')
                  int stationListenerCount,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'hasTakeoverModes')
                  bool hasTakeoverModes,
              @JsonKey(name: 'hasCuratedModes')
                  bool hasCuratedModes,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          genre,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'allowFeedback', fromJson: readOptInBool, toJson: writeOptInBool)
                  bool allowFeedback,
              @JsonKey(name: 'autogenForListener')
                  bool autogenForListener,
              @JsonKey(name: 'collectible')
                  bool collectible,
              @JsonKey(name: 'description', fromJson: readOptionalOptionallyEmptyString, toJson: writeOptionallyEmptyString)
                  String? description,
              @JsonKey(name: 'duration', fromJson: readSeconds, toJson: writeSeconds)
                  Duration duration,
              @JsonKey(name: 'includedTrackTypes')
                  List<PandoraType> includedTrackTypes,
              @JsonKey(name: 'isPrivate')
                  bool isPrivate,
              @JsonKey(name: 'linkedType')
                  PlaylistLinkedType linkedType,
              @JsonKey(name: 'listenerId')
                  int listenerId,
              @JsonKey(name: 'listenerIdInfo')
                  ListenerIdInfo listenerIdInfo,
              @JsonKey(name: 'listenerIdToken')
                  String listenerIdToken,
              @JsonKey(name: 'listenerPandoraId')
                  String listenerPandoraId,
              @JsonKey(name: 'secret')
                  bool secret,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'thorLayers')
                  String thorLayers,
              @JsonKey(name: 'timeCreated', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime timeCreated,
              @JsonKey(name: 'timeLastPlayed', fromJson: readOptionalDateTimeMilliseconds, toJson: writeOptionalDateTimeMilliseconds)
                  DateTime? timeLastPlayed,
              @JsonKey(name: 'timeLastUpdated', fromJson: readOptionalDateTimeMilliseconds, toJson: writeOptionalDateTimeMilliseconds)
                  DateTime? timeLastUpdated,
              @JsonKey(name: 'totalTracks')
                  int totalTracks,
              @JsonKey(name: 'unlocked')
                  bool unlocked,
              @JsonKey(name: 'viewerInfo')
                  PlaylistViewerInfo? viewerInfo,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          playlist,
      TResult Function(
              @JsonKey(name: 'stationName')
                  String name,
              @JsonKey(name: 'stationId')
                  String stationId,
              @JsonKey(name: 'listenerId')
                  int listenerId,
              @JsonKey(name: 'listenerPandoraId')
                  String listenerPandoraId,
              @JsonKey(name: 'initialSeedId')
                  String? initialSeedId,
              @JsonKey(name: 'isQuickMix')
                  bool isQuickMix,
              @JsonKey(name: 'isThumbprint')
                  bool isThumbprint,
              @JsonKey(name: 'hasCuratedModes', fromJson: readOptInBool, toJson: writeOptInBool)
                  bool hasCuratedModes,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'pandoraId')
                  String pandoraId)?
          station,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'publisherName')
                  String publisherName,
              @JsonKey(name: 'publisherId')
                  String publisherId,
              @JsonKey(name: 'ordering')
                  String ordering,
              @JsonKey(name: 'episodeCount')
                  int episodeCount,
              @JsonKey(name: 'shelfLife')
                  String shelfLife,
              @JsonKey(name: 'categories')
                  List<String> categoryPandoraIds,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'slugPlusPandoraId')
                  String slugPlusPandoraId,
              @JsonKey(name: 'contentState')
                  ContentState contentState,
              @JsonKey(name: 'rightsInfo')
                  RightsInfo rightsInfo,
              @JsonKey(name: 'sxmEnabled')
                  bool sxmEnabled,
              @JsonKey(name: 'sxmChannelId')
                  String? sxmChannelId,
              @JsonKey(name: 'latestEpisodeId')
                  String? latestEpisodePandoraId,
              @JsonKey(name: 'exclusivityGroups')
                  List<Object> exclusivityGroups,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          podcast,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'aliases')
                  List<String> aliases,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  String scope)?
          podcastCategory,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'programName')
                  String programName,
              @JsonKey(name: 'summary')
                  String summary,
              @JsonKey(name: 'releaseDate')
                  DateTime? releaseDate,
              @JsonKey(name: 'podcastId')
                  String podcastPandoraId,
              @JsonKey(name: 'duration', fromJson: readSeconds, toJson: writeSeconds)
                  Duration duration,
              @JsonKey(name: 'rightsInfo')
                  RightsInfo rightsInfo,
              @JsonKey(name: 'explicitness')
                  Explicitness explicitness,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'slugPlusPandoraId')
                  String slugPlusPandoraId,
              @JsonKey(name: 'contentState')
                  ContentState contentState,
              @JsonKey(name: 'adBreaks')
                  List<Object> adBreaks,
              @JsonKey(name: 'exclusivityGroups')
                  List<Object> exclusivityGroups,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  Scope scope)?
          episode,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'listenerId')
                  int listenerId,
              @JsonKey(name: 'listenerPandoraId')
                  String listenerPandoraId,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  String scope)?
          curator,
      TResult Function(
              @JsonKey(name: 'name')
                  String name,
              @JsonKey(name: 'sortableName')
                  String sortableName,
              @JsonKey(name: 'icon', fromJson: MediaIcon.optionalFromJson, toJson: MediaIcon.optionalToJson)
                  MediaIcon? icon,
              @JsonKey(name: 'hasRadio', fromJson: readOptInBool, toJson: writeOptInBool)
                  bool hasRadio,
              @JsonKey(name: 'albumCount')
                  int albumCount,
              @JsonKey(name: 'trackCount')
                  int trackCount,
              @JsonKey(name: 'shareableUrlPath')
                  String shareableUrlPath,
              @JsonKey(name: 'modificationTime', fromJson: readDateTimeMilliseconds, toJson: writeDateTimeMilliseconds)
                  DateTime modificationTime,
              @JsonKey(name: 'slugPlusPandoraId')
                  String slugPlusPandoraId,
              @JsonKey(name: 'pandoraId')
                  String pandoraId,
              @JsonKey(name: 'scope')
                  String scope)?
          composer,
      TResult Function(
              @JsonKey(name: 'listenerId') int listenerId,
              @JsonKey(name: 'webname') String webname,
              @JsonKey(name: 'fullname') String? fullName,
              @JsonKey(name: 'displayname') String displayName,
              @JsonKey(name: 'bio') String? biography,
              @JsonKey(name: 'defaultImageUrl') Uri? defaultImageUrl,
              @JsonKey(name: 'imageUrl') Uri? imageUrl,
              @JsonKey(name: 'pandoraId') String pandoraId)?
          listener,
      required TResult orElse(),
    }) =>
        throw _privateConstructorUsedError;