ExperimentVariantRow constructor

ExperimentVariantRow({
  1. required String experimentKey,
  2. required String label,
  3. required String assignedVariant,
  4. required List<String> availableVariants,
  5. bool isOverridden = false,
})

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',
    );
  }
}