findDiscriminator method
Discriminator?
findDiscriminator(
- Decoder decoder, [
- String? currentValue,
- List<
Discriminator> ? customDiscriminators
Implementation
Discriminator? findDiscriminator(Decoder decoder, [String? currentValue, List<Discriminator>? customDiscriminators]) {
final discriminators = [...this.discriminators, ...?customDiscriminators];
String? discriminatorValue = currentValue;
if (discriminatorValue == null && discriminatorKey != null) {
discriminatorValue = decoder.clone().decodeMapped().decodeStringOrNull(discriminatorKey!);
}
for (var d in discriminators) {
final discriminator = d.canDecodable(decoder, discriminatorKey, discriminatorValue);
if (discriminator == null) continue;
return discriminator;
}
return null;
}