checkEntityFields<O> method
void
checkEntityFields<O>(
- O o,
- String entityName,
- String table, {
- EntityHandler<
O> ? entityHandler,
override
Implementation
@override
void checkEntityFields<O>(
O o,
String entityName,
String table, {
EntityHandler<O>? entityHandler,
}) {
Map<Object, Map<String, dynamic>>? map = _getTableMap(table, false);
if (map == null) return;
entityHandler ??= getEntityHandler<O>(
entityName: entityName,
tableName: table,
);
if (entityHandler == null) {
throw StateError(
"Can't define `EntityHandler`> entityName: $entityName ; table: $table ; entityType: $O",
);
}
var entityId = getEntityID(
o!,
entityHandler: entityHandler,
entityName: entityName,
tableName: table,
);
var fieldsEntityAnnotations = entityHandler.getAllFieldsEntityAnnotations(
o,
);
var uniques =
fieldsEntityAnnotations?.entries
.where((e) => e.value.hasUnique)
.toList();
if (uniques == null || uniques.isEmpty) return;
for (var e in uniques) {
var field = e.key;
var value = entityHandler.getField(o, field);
if (value == null) continue;
if (_containsEntryWithConflictFieldValue(
map,
entityHandler,
entityId,
field,
value,
)) {
throw EntityFieldInvalid(
'unique',
value,
fieldName: field,
entityType: entityHandler.type,
tableName: table,
);
}
}
}