checkDBTableField method
Implementation
bool checkDBTableField(Type entityType, String fieldName, Type? schemeType,
TypeInfo<dynamic>? fieldType) {
if (schemeType == null || fieldType == null) {
throw StateError(
"Invalid scheme field(`$entityType`.`$fieldName`) type> schemeType: $schemeType ; fieldType: $fieldType > $this");
}
var fieldEntityType = fieldType.entityType;
if (fieldEntityType != null) {
if (schemeType != fieldEntityType &&
!schemeType.isEntityIDType &&
!fieldType.isEntityReferenceBaseType) {
throw StateError(
"Invalid scheme field(`$fieldName`) type> fieldEntityType: $fieldEntityType ; schemeType: $schemeType (invalid ID type) > $this");
}
return true;
} else {
var type = fieldType.type;
if (schemeType == type) {
return true;
}
if (schemeType == String) {
var enumReflection =
ReflectionFactory().getRegisterEnumReflection(type);
if (enumReflection != null && enumReflection.enumType == type) {
return true;
}
}
throw StateError(
"Invalid scheme field(`$fieldName`) type> fieldType: $type != schemeType: $schemeType > $this");
}
}