getTableScheme method
FutureOr<TableScheme?>
getTableScheme(
- String table, {
- TableRelationshipReference? relationship,
- Object? contextID,
Returns a TableScheme for table.
Calls getTableSchemeImpl handling asynchronous calls.
contextIDshould be Expando compatible. It informs that other calls to getTableScheme are in the same context and could have shared internal caches for the samecontextIDinstance.
Implementation
FutureOr<TableScheme?> getTableScheme(
String table, {
TableRelationshipReference? relationship,
Object? contextID,
}) {
var tablesScheme = _tablesSchemes[table];
if (tablesScheme != null) return tablesScheme;
var resolving = _tablesSchemesResolving[table];
if (resolving != null) {
return resolving.future;
}
var completer = Completer<TableScheme?>();
_tablesSchemesResolving[table] = completer;
var ret = getTableSchemeImpl(table, relationship, contextID: contextID);
return ret.resolveMapped((tablesScheme) {
if (tablesScheme != null) {
_tablesSchemes[table] = tablesScheme;
}
completer.complete(tablesScheme);
_tablesSchemesResolving.remove(table);
return tablesScheme;
});
}