ManagedDataModel constructor
Creates an instance of ManagedDataModel from a list of types that extend ManagedObject. It is preferable to use ManagedDataModel.fromCurrentMirrorSystem over this method.
To register a class as a managed object within this data model, you must include its type in the list. Example:
new DataModel([User, Token, Post]);
Implementation
ManagedDataModel(List<Type> instanceTypes) {
final runtimes = RuntimeContext.current.replicas!.iterable
.whereType<ManagedEntityRuntime?>()
.toList();
final expectedRuntimes = instanceTypes
.map((t) => runtimes.firstWhere((e) => e!.entity.instanceType == t,
orElse: () => null))
.toList();
final notFound = expectedRuntimes.where((e) => e == null).toList();
if (notFound.isNotEmpty) {
throw ManagedDataModelError(
"Data model types were not found: ${notFound.map((e) => e!.entity.name).join(", ")}");
}
expectedRuntimes.forEach((runtime) {
_entities[runtime!.entity.instanceType!] = runtime.entity;
_tableDefinitionToEntityMap[runtime.entity.tableDefinition!] =
runtime.entity;
});
expectedRuntimes.forEach((runtime) => runtime!.finalize(this));
}