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>
|
extends BaseTableManager<DB, T, D, FS, OS>
|
||||||
with ProcessedTableManagerMixin<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
|
/// 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
|
/// A table manager that has methods to filter the query
|
||||||
|
|
|
@ -22,7 +22,7 @@ class Names {
|
||||||
orderingComposer = '${name}OrderingComposer',
|
orderingComposer = '${name}OrderingComposer',
|
||||||
processedTableManager = '${name}ProcessedTableManager',
|
processedTableManager = '${name}ProcessedTableManager',
|
||||||
tableManagerWithFiltering = '${name}TableManagerWithFiltering',
|
tableManagerWithFiltering = '${name}TableManagerWithFiltering',
|
||||||
tableManagerWithOrdering = '${name}ProcessedTableManagerWithOrdering',
|
tableManagerWithOrdering = '${name}TableManagerWithOrdering',
|
||||||
rootTableManager = '${name}TableManager';
|
rootTableManager = '${name}TableManager';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,54 @@ class ManagerWriter {
|
||||||
|
|
||||||
ManagerWriter(this._scope, this._dbClassName) : _addedTables = [];
|
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) {
|
void _writeTableManagers(DriftTable table, List<DriftTable> otherTables) {
|
||||||
final leaf = _scope.leaf();
|
final leaf = _scope.leaf();
|
||||||
|
|
||||||
|
@ -157,72 +205,8 @@ class ${names.orderingComposer}
|
||||||
$orderings
|
$orderings
|
||||||
|
|
||||||
|
|
||||||
}
|
}""");
|
||||||
|
writeManagers(leaf, table);
|
||||||
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)));
|
|
||||||
}
|
|
||||||
|
|
||||||
""");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String get managerGetter {
|
String get managerGetter {
|
||||||
|
|
Loading…
Reference in New Issue