ProfileLevel constructor

ProfileLevel({
  1. required int level,
  2. required int currentXp,
  3. int? xpForNextLevel,
  4. String? label,
  5. String? xpText,
})

Implementation

ProfileLevel({
  required this.level,
  required this.currentXp,
  this.xpForNextLevel,
  this.label,
  this.xpText,
}) {
  if (level < 1) {
    throw ArgumentError.value(level, 'level', 'must be >= 1');
  }
  if (currentXp < 0) {
    throw ArgumentError.value(currentXp, 'currentXp', 'must be >= 0');
  }
  final next = xpForNextLevel;
  if (next != null && (next <= 0 || currentXp > next)) {
    throw ArgumentError.value(
      next,
      'xpForNextLevel',
      'must be > 0 and >= currentXp',
    );
  }
  for (final (name, value) in [('label', label), ('xpText', xpText)]) {
    if (value != null && value.trim().isEmpty) {
      throw ArgumentError.value(value, name, 'must not be blank');
    }
  }
}