create<V, I extends Iterable<V>> static method

CollectiveValueProperties<V> create<V, I extends Iterable<V>>({
  1. Cell? bind,
  2. ContainerType? container,
  3. CollectiveReceptor<dynamic, Signal, Signal>? receptor,
  4. TestCollective<dynamic, Collective> test = TestCollective.passed,
  5. Synapses<Signal, Cell> synapses = Synapses.enabled,
  6. MapObject? mapObject,
  7. bool setter(
    1. CollectiveValue<V> value,
    2. I container,
    3. V? v
    )?,
  8. V? getter(
    1. CollectiveValue<V> value,
    2. I container
    )?,
})
override

Factory constructor for full property configuration.

Parameters:

  • bind: Reactive cell to bind to
  • container: How to store the value (defaults to ContainerType.value)
  • receptor: Custom signal handling logic
  • test: Validation rules
  • mapObject: Value transformation pipeline
  • synapses: Connection management configuration
  • setter: Custom value storage logic
  • getter: Custom value retrieval logic

Implementation

static CollectiveValueProperties<V> create<V, I extends Iterable<V>>({
  Cell? bind,
  ContainerType? container,
  CollectiveReceptor? receptor,
  TestCollective test = TestCollective.passed,
  Synapses synapses = Synapses.enabled,
  MapObject? mapObject,
  bool Function(CollectiveValue<V> value, I container, V? v)? setter,
  V? Function(CollectiveValue<V> value, I container)? getter,
}) {
  Record record;
  if (test == TestCollective.passed && mapObject == null && synapses == Synapses.enabled && setter == null && getter == null) {
    if (bind != null || container != ContainerType.growableFalse || receptor != CollectiveReceptor.unchanged) {
      record = (
      bind: bind,
      container: container != ContainerType.growableFalse ? container : ContainerType.create<V,I>(),
      receptor: receptor
      );
    } else {
      record = ();
    }
  } else {
    record = (bind: bind,
    container: container ?? ContainerType.create<V,I>(),
    receptor: receptor == CollectiveReceptor.unchanged ? CollectiveReceptor<V,CollectivePost,CollectivePost>() : receptor,
    test: test,
    mapObject: mapObject,
    synapses: synapses, setter: setter, getter: getter
    );
  }
  return _CollectiveValueProperties<V,I>.fromRecord(record);
}