recalculateFieldErrors method

void recalculateFieldErrors()

Implementation

void recalculateFieldErrors() {
  final fieldErrorAcc = <String, List<AnnotationMessage>>{};
  for (var field in _structure.fields) {
    fieldErrorAcc[field.name] = [];
  }
  final classErrorAcc = <AnnotationMessage>[];
  hasErrors = false;
  for (var i = 0; i < _results.length; i++) {
    final result = _results[i];
    for (var message in result.messages) {
      hasErrors = true;
      if (message.target == null) {
        classErrorAcc.add(message);
      } else {
        fieldErrorAcc[message.target!]!.add(message);
      }
    }
  }
  for (var error in _customErrors) {
    for (var message in error.messages) {
      hasErrors = true;
      if (message.target == null) {
        classErrorAcc.add(message);
      } else {
        fieldErrorAcc[message.target!]!.add(message);
      }
    }
  }

  classErrors = AnnotationResult(messages: classErrorAcc);
  fieldErrorAcc.forEach((key, value) {
    fieldErrors[key] = AnnotationResult(messages: value);
  });
  onChanged();
}