ModelRegistry class

Registry that stores ModelDefinition objects by model type and name.

A ModelRegistry is used by QueryContext and DataSource to resolve model metadata at runtime.

Generated .orm.dart files typically register definitions on startup, and DataSource.init registers the definitions provided in DataSourceOptions.entities.

final registry = ModelRegistry();
registry.register<$User>($UserOrmDefinition.definition);

final userDef = registry.expect<$User>();
print(userDef.tableName);
Available extensions

Constructors

ModelRegistry()

Properties

allDefinitions List<ModelDefinition<OrmEntity>>
Returns all registered model definitions, deduplicated by model name.
no setter
hashCode int
The hash code for this object.
no setterinherited
onRegistered Stream<ModelDefinition<OrmEntity>>
Stream of definitions as they are registered.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
values Iterable<ModelDefinition<OrmEntity>>
Iterable view of the registered definitions keyed by type.
no setter

Methods

addOnRegisteredCallback(void callback(ModelDefinition<OrmEntity>)) → void
Registers a callback that is invoked when a definition is registered.
contains<T>() bool
Whether a definition is registered for T.
expect<T extends OrmEntity>() ModelDefinition<T>
Returns the registered ModelDefinition for T or throws.
expectByName(String name) ModelDefinition<OrmEntity>
Returns the model definition registered under name or throws.
expectByTableName(String tableName) ModelDefinition<OrmEntity>
Returns the model definition for the given tableName or throws.
expectByType(Type type) ModelDefinition<OrmEntity>
Returns the registered ModelDefinition for a runtime type or throws.
findByTableName(String tableName) ModelDefinition<OrmEntity>?
Returns the model definition for the given tableName, or null if not found.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
register<T extends OrmEntity>(ModelDefinition<T> definition) → void
Registers definition for type T.
registerAlias<T extends OrmEntity>(ModelDefinition<T> base, {required String aliasModelName, String? tableName, String? schema}) ModelDefinition<T>
Creates and registers an alias definition for base under aliasModelName.
registerAll(Iterable<ModelDefinition<OrmEntity>> definitions) → void
Registers many model definitions.
registerModel<TModel extends Model<TModel>>(ModelDefinition<TModel> definition) ModelRegistry

Available on ModelRegistry, provided by the ModelRegistryX extension

Fluent helper for registering definitions tied to Model subclasses.
registerMorphAlias(String alias, Type modelType) → void
Registers a morph type alias for a model type.
registerMorphMap(Map<String, Type> aliases) → void
Registers a morph map of aliases to model types.
registerTypeAlias<T extends OrmEntity>(ModelDefinition<OrmEntity> existingDefinition) → void
Registers a type alias that points to an existing definition.
resolveMorphDefinition(String aliasOrModelName) ModelDefinition<OrmEntity>
Resolves a morph alias or model name to a registered model definition.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited