ExperimentVariantRow constructor
ExperimentVariantRow({})
Implementation
ExperimentVariantRow({
required this.experimentKey,
required this.label,
required this.assignedVariant,
required List<String> availableVariants,
this.isOverridden = false,
}) : availableVariants = List.unmodifiable(availableVariants) {
if (experimentKey.trim().isEmpty) {
throw ArgumentError.value(
experimentKey,
'experimentKey',
'must not be blank',
);
}
if (label.trim().isEmpty) {
throw ArgumentError.value(label, 'label', 'must not be blank');
}
if (this.availableVariants.isEmpty) {
throw ArgumentError.value(
availableVariants,
'availableVariants',
'must not be empty',
);
}
if (this.availableVariants.any((v) => v.trim().isEmpty) ||
this.availableVariants.toSet().length !=
this.availableVariants.length) {
throw ArgumentError.value(
availableVariants,
'availableVariants',
'must be nonblank and unique',
);
}
if (!this.availableVariants.contains(assignedVariant)) {
throw ArgumentError.value(
assignedVariant,
'assignedVariant',
'must be one of availableVariants',
);
}
}