TableScheme constructor
TableScheme(
- String name, {
- required String? idFieldName,
- required Map<
String, Type> fieldsTypes, - Map<
String, TableFieldReference> fieldsReferencedTables = const <String, TableFieldReference>{}, - Iterable<
TableRelationshipReference> ? relationshipTables, - Iterable<
TableConstraint> ? constraints, - bool relationship = false,
Implementation
TableScheme(
this.name, {
required this.idFieldName,
required Map<String, Type> fieldsTypes,
Map<String, TableFieldReference> fieldsReferencedTables =
const <String, TableFieldReference>{},
Iterable<TableRelationshipReference>? relationshipTables,
Iterable<TableConstraint>? constraints,
this.relationship = false,
}) : fieldsNames = List<String>.unmodifiable(fieldsTypes.keys),
fieldsTypes = Map.unmodifiable(fieldsTypes),
constraints = ((constraints?.toList() ?? [])..sort()).toSet(),
_fieldsReferencedTables = Map<String, TableFieldReference>.unmodifiable(
fieldsReferencedTables),
_relationshipTables = Set<TableRelationshipReference>.unmodifiable(
relationshipTables ?? <TableRelationshipReference>[]) {
_fieldsNamesIndexes = buildFieldsNamesIndexes(fieldsNames);
_fieldsNamesLC = buildFieldsNamesLC(fieldsNames);
_fieldsNamesSimple = buildFieldsNamesSimple(fieldsNames);
for (var t in _relationshipTables) {
if (t.sourceTable == name) {
var l = _tableRelationshipReference.putIfAbsent(
t.targetTable, () => <TableRelationshipReference>[]);
l.add(t);
}
}
_tableRelationshipReference.updateAll((key, value) =>
UnmodifiableListView<TableRelationshipReference>(value));
}