buildConstructor method
Future<void>
buildConstructor(
- ClassDeclaration clazz,
- MemberDeclarationBuilder builder
)
Implementation
Future<void> buildConstructor(ClassDeclaration clazz, MemberDeclarationBuilder builder) async {
List<FieldDeclaration> properties = await validFields(clazz, builder);
if(properties.isEmpty){
builder.declareInType(DeclarationCode.fromString(asCode("""
/// The Constructor for [${clazz.identifier.name}]. You should probably define some fields.
const ${clazz.identifier.name}();
""")));
} else{
builder.declareInType(DeclarationCode.fromString(asCode("""
/// The Constructor for [${clazz.identifier.name}].
/// Null values use the default value in the \$prefixed static const fields.
${properties.map((i) => "/// [${i.identifier.name.substring(1)}] ${i.type.fullName}").join("\n ")}
const ${clazz.identifier.name}({
${properties.map((i) => "${!i.type.isNullable && !i.hasInitializer?"required " : ""} this.${i.identifier.name.substring(1)}${i.hasInitializer ? " = ${i.identifier.name}" : ""}").join(",\n ")}
});
""")));
}
}