onGenerate method
Future<$BuildOutput>
onGenerate(
- ArtifactBuilder builder,
- ClassElement clazz,
- ConstructorElement ctor,
- List<
FormalParameterElement> params, - BuildStep step,
- List<
String> ? eFields,
override
Implementation
@override
Future<$BuildOutput> onGenerate(
ArtifactBuilder builder,
ClassElement clazz,
ConstructorElement ctor,
List<FormalParameterElement> params,
BuildStep step,
List<String>? eFields,
) async {
StringBuffer buf = StringBuffer();
List<Uri> importUris = <Uri>[];
buf.write(
" static ${builder.applyDefsF(clazz.name ?? "")} get newInstance=>${builder.applyDefsF(clazz.name ?? "")}(",
);
for (FormalParameterElement i in params) {
if (i.isRequired) {
if (i.type.nullabilitySuffix == NullabilitySuffix.question) {
buf.write("${i.name}: null,");
} else if (i.hasDefaultValue) {
String defaultCode = builder.defaultValueForParam(i);
buf.write("${i.name}: $defaultCode,");
} else if (i.type.isDartCoreBool) {
buf.write("${i.name}: _F,");
} else if (i.type.isDartCoreInt || i.type.isDartCoreDouble) {
buf.write("${i.name}: 0,");
} else if (i.type.isDartCoreString) {
buf.write("${i.name}: '',");
} else if (i.type.isDartCoreIterable || i.type.isDartCoreList) {
buf.write("${i.name}: [],");
} else if (i.type.name == "DateTime") {
buf.write("${i.name}: DateTime.now(),");
} else if (i.type.isDartCoreEnum ||
(i.type is InterfaceType &&
builder.$isEnum(i.type as InterfaceType))) {
buf.write(
"${i.name}: ${builder.applyDefsF(i.type.getDisplayString(withNullability: false))}.values.first,",
);
} else if (i.type.isDartCoreSet || i.type.isDartCoreMap) {
buf.write("${i.name}: {},");
} else {
buf.write(
"${i.name}: \$${(i.type.getDisplayString(withNullability: false))}.newInstance,",
);
}
}
}
buf.writeln(');');
return (importUris, buf);
}