• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pkiraly / metadata-qa-marc / #1527

22 Aug 2025 02:21PM UTC coverage: 90.345%. Remained the same
#1527

push

pkiraly
Improve timeline handling

5191 of 6416 new or added lines in 219 files covered. (80.91%)

886 existing lines in 78 files now uncovered.

36717 of 40641 relevant lines covered (90.34%)

0.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.0
/src/main/java/de/gwdg/metadataqa/marc/analysis/validator/ControlFieldValidator.java
1
package de.gwdg.metadataqa.marc.analysis.validator;
2

3
import de.gwdg.metadataqa.marc.dao.Control005;
4
import de.gwdg.metadataqa.marc.dao.MarcControlField;
5
import de.gwdg.metadataqa.marc.dao.MarcPositionalControlField;
6
import de.gwdg.metadataqa.marc.dao.SimpleControlField;
7
import de.gwdg.metadataqa.marc.definition.ControlValue;
8
import de.gwdg.metadataqa.marc.model.validation.ValidationError;
9

10
import java.util.ArrayList;
11
import java.util.List;
12

13
public class ControlFieldValidator extends AbstractValidator {
14

15
  public ControlFieldValidator() {
16
    super(new ValidatorConfiguration());
1✔
17
  }
1✔
18

19
  public ControlFieldValidator(ValidatorConfiguration configuration) {
20
    super(configuration);
1✔
21
  }
1✔
22

23
  public boolean validate(MarcControlField controlField) {
24
    // Reset the validation errors on every validation
25
    validationErrors = new ArrayList<>();
1✔
26

27
    if (controlField instanceof SimpleControlField) {
1✔
28
      return validateSimpleControlField((SimpleControlField) controlField);
1✔
29
    }
30
    if (controlField instanceof MarcPositionalControlField) {
1✔
31
      return validateMarcPositionalControlField((MarcPositionalControlField) controlField);
1✔
32
    }
NEW
33
    return true;
×
34
  }
35

36
  private boolean validateMarcPositionalControlField(MarcPositionalControlField controlField) {
37
    if (!controlField.getInitializationErrors().isEmpty()) {
1✔
38
      // Add all initialization errors which aren't ignored
NEW
39
      List<ValidationError> initializationErrors = controlField.getInitializationErrors();
×
NEW
40
      initializationErrors = filterErrors(initializationErrors);
×
NEW
41
      validationErrors.addAll(initializationErrors);
×
42
    }
43

44
    ControlValueValidator validator = new ControlValueValidator(configuration);
1✔
45
    for (ControlValue controlValue : controlField.getValuesList()) {
1✔
46
      if (!validator.validate(controlValue)) {
1✔
47
        validationErrors.addAll(validator.getValidationErrors());
1✔
48
      }
49
    }
1✔
50
    return validationErrors.isEmpty();
1✔
51
  }
52

53
  private boolean validateSimpleControlField(SimpleControlField controlField) {
54
    if (controlField instanceof Control005) {
1✔
55
      Control005 control = (Control005) controlField;
1✔
56
      control.validate(configuration.getMarcVersion());
1✔
57
      validationErrors.addAll(filterErrors(control.getValidationErrors()));
1✔
58
    }
59
    return validationErrors.isEmpty();
1✔
60
  }
61
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc