EntityAnalysis<T extends Object, SYS_DB extends CrudDatabase<Object, Object> , SYS_ID extends Object> constructor
EntityAnalysis<T extends Object, SYS_DB extends CrudDatabase<Object, Object> , SYS_ID extends Object> (
- DogStructure<
T> structure, - OdmSystem<
SYS_DB, SYS_ID> system
Implementation
EntityAnalysis(this.structure, this.system) {
var idProperty = structure.fields
.firstWhereOrNull((element) => element.firstAnnotationOf<Id>() != null);
idProperty ??= structure.fields.where((element) => element.name == "id").firstOrNull;
if (idProperty == null) {
throw ArgumentError("Entity ${structure.typeArgument} does not have an id property");
}
this.idProperty = idProperty;
idPropertyIndex = structure.fields.indexOf(idProperty);
idPropertyName = idProperty.name;
var opmode = system.engine.modeRegistry
.nativeSerialization.forType(T, system.engine);
if (opmode is! StructureNativeSerialization) {
throw ArgumentError("Native serialization for type $T is not a structure");
}
nativeSerialization = opmode;
}