generateClass method
Implementation
String generateClass(
String originalClassName,
String name,
Iterable<Field> fields, [
Iterable<FieldType> interfaces = const [],
]) {
final result = StringBuffer();
if (name.startsWith('_')) {
name = name.substring(1);
}
if (interfaces.isNotEmpty) {
final implements = interfaces.map((it) => it.displayName).join(', ');
result.writeln('class $name implements $implements {');
} else {
result.writeln('class $name {');
}
result.writeln(' final $originalClassName? \$scheme = null;');
result.writeln();
result.write(generateClassFields(fields));
result.writeln();
result.write(generateConstructor(name, fields));
result.write(generateUnions(fields));
result.write(generateTypeAdapters(fields));
if (shouldGenerateFromJson) {
result.writeln();
result.write(generateFromJson(name, fields));
}
if (shoudlGenerateFromStringJson) {
result.writeln();
result.write(generateFromJsonString(name));
}
if (shouldGenerateToJson) {
result.writeln();
result.write(generateToJson(name, fields));
}
if (shouldGenerateToStringJson) {
result.writeln();
result.write(generateToJsonString());
}
result.writeln('}');
return result.toString();
}