drift/sally_generator/lib/src/writer/database_writer.dart

30 lines
885 B
Dart

import 'package:recase/recase.dart';
import 'package:sally_generator/src/model/specified_database.dart';
import 'package:sally_generator/src/writer/table_writer.dart';
class DatabaseWriter {
final SpecifiedDatabase db;
DatabaseWriter(this.db);
void write(StringBuffer buffer) {
for (final table in db.tables) {
TableWriter(table).writeInto(buffer);
}
// Write the database class
final className = '_\$${db.fromClass.name}';
buffer.write('abstract class $className extends GeneratedDatabase {\n'
'$className() : super(const SqlTypeSystem.withDefaults(), null); \n');
for (var table in db.tables) {
final tableFieldName = ReCase(table.fromClass.name).camelCase;
final tableClassName = table.tableInfoName;
buffer.write('$tableClassName get $tableFieldName => $tableClassName(this);');
}
buffer.write('}');
}
}