StructureBindingController<T> constructor

StructureBindingController<T>(
  1. DogStructure structure,
  2. DogEngine engine, {
  3. Map<String, dynamic> initialValues = const {},
})

Creates a new StructureBindingController with the given structure and engine.

The controller will be initialized with the provided structure and engine, and optionally populated with initialValues.

Implementation

StructureBindingController(this.structure, this.engine, {this.initialValues = const {}}) {
  for (var e in structure.fields) {
    final (binder, context) = FlutterWidgetBinder.resolveBinder(engine, structure, e);
    final controller = binder.createBindingController(this, context);
    factories.add(binder);
    fields.add(controller);
    _fieldNames.add(e.name);
  }
  _classValidator = structure.getClassValidator(
    engine: engine,
    fieldValidators: fields.map((e) => e.bindingContext.fieldValidator).toList(),
  );
  _errorBuffer = BindingsErrorBuffer(structure, _classValidator, () {
    classErrorListenable.value = _errorBuffer.classErrors;
  });
  setInitialValues(initialValues);
  reset();
}