create<V, I extends Iterable<V> > static method
CollectiveValueProperties<V>
create<V, I extends Iterable<V> >({
- Cell? bind,
- ContainerType? container,
- CollectiveReceptor<
dynamic, Signal, Signal> ? receptor, - TestCollective<
dynamic, Collective> test = TestCollective.passed, - Synapses<
Signal, Cell> synapses = Synapses.enabled, - MapObject? mapObject,
- bool setter(
- CollectiveValue<
V> value, - I container,
- V? v
- CollectiveValue<
- V? getter(
- CollectiveValue<
V> value, - I container
- CollectiveValue<
override
Factory constructor for full property configuration.
Parameters:
bind
: Reactive cell to bind tocontainer
: How to store the value (defaults to ContainerType.value)receptor
: Custom signal handling logictest
: Validation rulesmapObject
: Value transformation pipelinesynapses
: Connection management configurationsetter
: Custom value storage logicgetter
: 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);
}