ModelRefBuilder<TSource, TResult> class

Builder for granting relationships between models and loading data.

Define ModelRefLoaderMixin to match the mix-in.

The procedure is;

  1. Returns a ModelRefBase containing only the relation information stored in TSource via modelRef.
  2. Generates and returns a mixed-in DocumentBase with ModelRefMixin<TResult> based on DocumentModelQuery via document.
  3. Store the DocumentBase generated via value in TSource and return the updated TSource.

モデル間のリレーションを付与しデータのロードを行うためのビルダー。

ModelRefLoaderMixinをミックスインしたときに合わせて定義します。

手順としては

  1. TSourceに保存されているリレーション情報のみ入ったModelRefBasemodelRef経由で返します。
  2. DocumentModelQueryを元にModelRefMixin<TResult>をミックスインしたDocumentBasedocument経由で生成し返します。
  3. value経由で生成されたDocumentBaseTSourceに保存して、更新した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
Available Extensions
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