entityRepositoriesBuildOrder property
Implementation
@override
List<EntityRepository> get entityRepositoriesBuildOrder {
var repositories = super.entityRepositoriesBuildOrder;
var entityRepositoriesBuildOrderIn = _entityRepositoriesBuildOrderIn;
var entityRepositoriesBuildOrderOut = _entityRepositoriesBuildOrderOut;
if (entityRepositoriesBuildOrderIn != null &&
entityRepositoriesBuildOrderOut != null &&
entityRepositoriesBuildOrderIn.equalsElements(repositories)) {
return entityRepositoriesBuildOrderOut.toList();
}
_entityRepositoriesBuildOrderIn = repositories.toList();
var sqls = generateEntityRepositoresCreateTableSQLs(
verbose: !DBAdapter.auxiliaryMode);
var ordered = sqls.entries.toHierarchicalOrder().map((e) => e.key).toList();
repositories.sort((a, b) {
var i1 = ordered.indexOf(a);
var i2 = ordered.indexOf(b);
var cmp = i1.compareTo(i2);
return cmp;
});
_entityRepositoriesBuildOrderOut = repositories.toList();
return repositories;
}