buildFromMap method
Future<void>
buildFromMap(
- ClassDeclaration clazz,
- MemberDeclarationBuilder builder
)
Implementation
Future<void> buildFromMap(ClassDeclaration clazz, MemberDeclarationBuilder builder) async {
List<FieldDeclaration> properties = await validFields(clazz, builder);
if(properties.isEmpty){
builder.declareInType(DeclarationCode.fromString(asCode("""
/// Creates a new [${clazz.identifier.name}] object from a Map<String, dynamic>
factory ${clazz.identifier.name}.fromMap(Map<String, dynamic> map) => ${clazz.identifier.name}();
""")));
} else{
builder.declareInType(DeclarationCode.fromString(asCode("""
/// Creates a new [${clazz.identifier.name}] object from a Map<String, dynamic>
factory ${clazz.identifier.name}.fromMap(Map<String, dynamic> map) => ${clazz.identifier.name}(
${properties.map((i) => "${i.identifier.name.substring(1)}: map[\"${i.identifier.name.substring(1)}\"] != null ? ${_fromMap(i, builder)} : ${i.identifier.name}").join(",\n ")}
);
""")));
}
}