mirror of https://github.com/AMT-Cheif/drift.git
Refactor Generation
This commit is contained in:
parent
76fea2ac28
commit
c7f310e46f
|
@ -272,7 +272,7 @@ class ProcessedTableManager<
|
|||
extends BaseTableManager<DB, T, D, FS, OS>
|
||||
with ProcessedTableManagerMixin<DB, T, D, FS, OS> {
|
||||
/// A table manager that only has functions to return items based on the state build by parent managers
|
||||
ProcessedTableManager(super.state);
|
||||
const ProcessedTableManager(super.state);
|
||||
}
|
||||
|
||||
/// A table manager that has methods to filter the query
|
||||
|
|
|
@ -22,7 +22,7 @@ class Names {
|
|||
orderingComposer = '${name}OrderingComposer',
|
||||
processedTableManager = '${name}ProcessedTableManager',
|
||||
tableManagerWithFiltering = '${name}TableManagerWithFiltering',
|
||||
tableManagerWithOrdering = '${name}ProcessedTableManagerWithOrdering',
|
||||
tableManagerWithOrdering = '${name}TableManagerWithOrdering',
|
||||
rootTableManager = '${name}TableManager';
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,54 @@ class ManagerWriter {
|
|||
|
||||
ManagerWriter(this._scope, this._dbClassName) : _addedTables = [];
|
||||
|
||||
void writeManagers(TextEmitter leaf, DriftTable table) {
|
||||
final names = Names(table.entityInfoName);
|
||||
|
||||
// Write the ProcessedTableManager
|
||||
leaf
|
||||
..write('class ${names.processedTableManager} extends ')
|
||||
..writeDriftRef('ProcessedTableManager')
|
||||
..writeln(
|
||||
'<$_dbClassName,${table.entityInfoName},${table.nameOfRowClass},${names.filterComposer},${names.orderingComposer}> {')
|
||||
..writeln('const ${names.processedTableManager}(super.state);')
|
||||
..writeln('}');
|
||||
|
||||
// Write the TableManagerWithFiltering
|
||||
leaf
|
||||
..write('class ${names.tableManagerWithFiltering} extends ')
|
||||
..writeDriftRef('TableManagerWithFiltering')
|
||||
..writeln(
|
||||
'<$_dbClassName,${table.entityInfoName},${table.nameOfRowClass},${names.filterComposer},${names.orderingComposer},${names.processedTableManager}> {')
|
||||
..writeln(
|
||||
'const ${names.tableManagerWithFiltering}(super.state,{required super.getChildManager});')
|
||||
..writeln('}');
|
||||
|
||||
// Write the TableManagerWithOrdering
|
||||
leaf
|
||||
..write('class ${names.tableManagerWithOrdering} extends ')
|
||||
..writeDriftRef('TableManagerWithOrdering')
|
||||
..writeln(
|
||||
'<$_dbClassName,${table.entityInfoName},${table.nameOfRowClass},${names.filterComposer},${names.orderingComposer},${names.processedTableManager}> {')
|
||||
..writeln(
|
||||
'const ${names.tableManagerWithOrdering}(super.state,{required super.getChildManager});')
|
||||
..writeln('}');
|
||||
// Write the Root Table Manager
|
||||
leaf
|
||||
..write('class ${names.rootTableManager} extends ')
|
||||
..writeDriftRef('RootTableManager')
|
||||
..writeln(
|
||||
'<$_dbClassName,${table.entityInfoName},${table.nameOfRowClass},${names.filterComposer},${names.orderingComposer},${names.processedTableManager},${names.tableManagerWithFiltering},${names.tableManagerWithOrdering}> {')
|
||||
..writeln(
|
||||
'${names.rootTableManager}($_dbClassName db, ${table.entityInfoName} table)')
|
||||
..writeln(": super(")
|
||||
..writeDriftRef("TableManagerState")
|
||||
..write(
|
||||
"""(db: db, table: table, filteringComposer:${names.filterComposer}(db, table),orderingComposer:${names.orderingComposer}(db, table)),
|
||||
getChildManagerWithFiltering: (f) => ${names.tableManagerWithFiltering}(f,getChildManager: (f) => ${names.processedTableManager}(f)),
|
||||
getChildManagerWithOrdering: (f) => ${names.tableManagerWithOrdering}(f,getChildManager: (f) =>${names.processedTableManager}(f)));""")
|
||||
..writeln('}');
|
||||
}
|
||||
|
||||
void _writeTableManagers(DriftTable table, List<DriftTable> otherTables) {
|
||||
final leaf = _scope.leaf();
|
||||
|
||||
|
@ -157,72 +205,8 @@ class ${names.orderingComposer}
|
|||
$orderings
|
||||
|
||||
|
||||
}
|
||||
|
||||
class ${names.processedTableManager} extends ProcessedTableManager<
|
||||
$_dbClassName,
|
||||
${table.entityInfoName},
|
||||
${table.nameOfRowClass},
|
||||
${names.filterComposer},
|
||||
${names.orderingComposer}> {
|
||||
${names.processedTableManager}(super.data);
|
||||
}
|
||||
|
||||
class ${names.tableManagerWithFiltering}
|
||||
extends TableManagerWithFiltering<
|
||||
$_dbClassName,
|
||||
${table.entityInfoName},
|
||||
${table.nameOfRowClass},
|
||||
${names.filterComposer},
|
||||
${names.orderingComposer},
|
||||
${names.processedTableManager}> {
|
||||
${names.tableManagerWithFiltering}(super.state,
|
||||
{required super.getChildManager});
|
||||
}
|
||||
|
||||
class ${names.tableManagerWithOrdering}
|
||||
extends TableManagerWithOrdering<
|
||||
$_dbClassName,
|
||||
${table.entityInfoName},
|
||||
${table.nameOfRowClass},
|
||||
${names.filterComposer},
|
||||
${names.orderingComposer},
|
||||
${names.processedTableManager}> {
|
||||
${names.tableManagerWithOrdering}(super.state,
|
||||
{required super.getChildManager});
|
||||
}
|
||||
|
||||
class ${names.rootTableManager} extends RootTableManager<
|
||||
$_dbClassName,
|
||||
${table.entityInfoName},
|
||||
${table.nameOfRowClass},
|
||||
${names.filterComposer},
|
||||
${names.orderingComposer},
|
||||
${names.processedTableManager},
|
||||
${names.tableManagerWithFiltering},
|
||||
${names.tableManagerWithOrdering}> {
|
||||
${names.rootTableManager}($_dbClassName db, ${table.entityInfoName} table)
|
||||
: super(
|
||||
TableManagerState(
|
||||
db: db,
|
||||
table: table,
|
||||
filteringComposer:
|
||||
${names.filterComposer}(db, table),
|
||||
orderingComposer:
|
||||
${names.orderingComposer}(db, table)),
|
||||
getChildManagerWithFiltering: (f) =>
|
||||
${names.tableManagerWithFiltering}(
|
||||
f,
|
||||
getChildManager: (f) =>
|
||||
${names.processedTableManager}(f),
|
||||
),
|
||||
getChildManagerWithOrdering: (f) =>
|
||||
${names.tableManagerWithOrdering}(f,
|
||||
getChildManager: (f) =>
|
||||
${names.processedTableManager}(f)));
|
||||
}
|
||||
|
||||
""");
|
||||
}""");
|
||||
writeManagers(leaf, table);
|
||||
}
|
||||
|
||||
String get managerGetter {
|
||||
|
|
Loading…
Reference in New Issue