initialize method
Initializes this relationship (typically when initializing the owner
in DataModel) by supplying the owner, and related adapters
and metadata.
Implementation
Future<Relationship<E, N>> initialize(
{required final Map<String, RemoteAdapter> adapters,
required final DataModel owner,
required final String name,
final String? inverseName}) async {
if (isInitialized) return this;
_adapters = adapters;
_adapter = adapters[internalType] as RemoteAdapter<E>;
_ownerKey = owner._key!;
_name = name;
_inverseName = inverseName;
// initialize uninitialized models and get keys
final newKeys = _uninitializedModels.map((model) {
return model._initialize(_adapters, save: true)._key!;
});
_uninitializedKeys.addAll(newKeys);
_uninitializedModels.clear();
// initialize keys
if (!_wasOmitted) {
// if it wasn't omitted, we overwrite
_graph._removeEdges(_ownerKey,
metadata: _name, inverseMetadata: _inverseName);
_graph._addEdges(
_ownerKey,
tos: _uninitializedKeys,
metadata: _name,
inverseMetadata: _inverseName,
);
_uninitializedKeys.clear();
}
isInitialized = true;
return this;
}