ModelRefBuilder<TSource, TResult> class
Builder for granting relationships between models and loading data.
Define ModelRefLoaderMixin to match the mix-in.
The procedure is;
- Returns a ModelRefBase containing only the relation information stored in
TSource
via modelRef. - Generates and returns a mixed-in DocumentBase with ModelRefMixin<TResult> based on DocumentModelQuery via document.
- Store the DocumentBase generated via value in
TSource
and return the updatedTSource
.
モデル間のリレーションを付与しデータのロードを行うためのビルダー。
ModelRefLoaderMixinをミックスインしたときに合わせて定義します。
手順としては
TSource
に保存されているリレーション情報のみ入ったModelRefBaseをmodelRef経由で返します。- DocumentModelQueryを元にModelRefMixin<TResult>をミックスインしたDocumentBaseをdocument経由で生成し返します。
- value経由で生成されたDocumentBaseを
TSource
に保存して、更新したTSource
を返すようにします。
@override
List<ModelRefBuilderBase<StreamModel>> get builder => [
ModelRefBuilder(
modelRef: (value) => value.user,
document: (query) => UserModelDocument(query),
value: (value, document) {
return value.copyWith(user: document);
},
)
];
- Inheritance
-
- Object
- ModelRefBuilderBase<
TSource> - ModelRefBuilder
- Annotations
Constructors
-
ModelRefBuilder({required ModelRefBase? modelRef(TSource value), required ModelRefMixin<
TResult> document(DocumentModelQuery modelQuery), required TSource value(TSource value, ModelRefMixin<TResult> document), ModelAdapter? adapter, ModelAccessQuery? accessQuery, List<ModelValidationQuery> ? validationQueries}) -
Builder for granting relationships between models and loading data.
const
Properties
- accessQuery → ModelAccessQuery?
-
ModelAccessQuery for use in the internal model.
final
- adapter → ModelAdapter?
-
Specify a ModelAdapter for use in the internal model.
final
-
document
→ ModelRefMixin<
TResult> Function(DocumentModelQuery modelQuery) -
Callback to generate a DocumentBase that mixes in a ModelRefMixin<TResult> based on a DocumentModelQuery obtained from a ModelRefBase.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- modelRef → ModelRefBase? Function(TSource value)
-
Callback to retrieve ModelRefBase stored in
TSource
.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
validationQueries
→ List<
ModelValidationQuery> ? -
Specify a list of ModelValidationQuery for use in the internal model.
final
-
value
→ TSource Function(TSource value, ModelRefMixin<
TResult> document) -
Callback to store the generated ModelRefMixin<TResult> in
TSource
.final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited