defaultValueFromTypeDescriptor function
dynamic
defaultValueFromTypeDescriptor({})
Implementation
dynamic defaultValueFromTypeDescriptor({
required $AT descriptor,
$AClass? artifactClass,
List<Enum> enumValues = const <Enum>[],
}) {
if (isNullableTypeDescriptor(descriptor)) {
return null;
}
ListTypeInfo? nestedCollection = parseCollectionTypeDescriptor(descriptor);
if (nestedCollection != null) {
return materializeCollectionValue(nestedCollection, const <dynamic>[]);
}
MapTypeInfo? nestedMap = parseMapTypeDescriptor(descriptor);
if (nestedMap != null) {
return materializeMapValue(nestedMap, const <MapEntry<dynamic, dynamic>>[]);
}
$AClass? resolvedArtifact =
artifactClass ?? resolveArtifactTypeFromDescriptor(descriptor);
if (resolvedArtifact != null) {
return resolvedArtifact.construct();
}
PrimitiveKind? kind = primitiveKindFromDescriptor(descriptor);
if (kind != null) {
return defaultPrimitiveValue(kind);
}
if (enumValues.isNotEmpty) {
return enumValues.first;
}
return unsupportedTypeDefaultValue;
}