validate method

ChartJsonOptionValueValidation validate(
  1. Object? candidate, {
  2. String? canonicalField,
})

Implementation

ChartJsonOptionValueValidation validate(
  Object? candidate, {
  String? canonicalField,
}) {
  final valid = switch (kind) {
    'boolean' => candidate is bool,
    'dataMode' => candidate is String && _dataModeValues.contains(candidate),
    'nonNegativeInteger' => _isInteger(candidate) && (candidate as num) >= 0,
    'positiveInteger' => _isInteger(candidate) && (candidate as num) > 0,
    'preset' => candidate is String && _presetValues.contains(candidate),
    'string' => candidate is String,
    'unitRatio' =>
      candidate is num &&
          candidate.isFinite &&
          candidate >= 0 &&
          candidate <= 1,
    _ => true,
  };

  return ChartJsonOptionValueValidation(
    canonicalField: canonicalField,
    kind: kind,
    value: candidate,
    isValid: valid,
    message: valid ? null : _invalidMessage(kind, canonicalField),
  );
}