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

pkiraly / metadata-qa-api / #634

13 Mar 2025 08:06PM UTC coverage: 87.186% (-0.1%) from 87.296%
#634

push

pkiraly
Fix dependency checker #223

20 of 74 new or added lines in 11 files covered. (27.03%)

1 existing line in 1 file now uncovered.

5375 of 6165 relevant lines covered (87.19%)

0.87 hits per line

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

86.67
/src/main/java/de/gwdg/metadataqa/api/rule/logical/OrChecker.java
1
package de.gwdg.metadataqa.api.rule.logical;
2

3
import de.gwdg.metadataqa.api.counter.FieldCounter;
4
import de.gwdg.metadataqa.api.json.DataElement;
5
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
6
import de.gwdg.metadataqa.api.model.selector.Selector;
7
import de.gwdg.metadataqa.api.rule.RuleChecker;
8
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
9
import de.gwdg.metadataqa.api.rule.RuleCheckingOutputStatus;
10
import de.gwdg.metadataqa.api.rule.RuleCheckingOutputType;
11
import de.gwdg.metadataqa.api.rule.singlefieldchecker.DependencyChecker;
12

13
import java.util.List;
14
import java.util.logging.Logger;
15

16
public class OrChecker extends LogicalChecker {
17

18
  private static final Logger LOGGER = Logger.getLogger(OrChecker.class.getCanonicalName());
1✔
19

20
  private static final long serialVersionUID = 1114999259831619599L;
21
  public static final String PREFIX = "or";
22

23
  /**
24
   * @param field The field
25
   * @param checkers The list of checkers
26
   */
27
  public OrChecker(DataElement field, List<RuleChecker> checkers) {
28
    this(field, field.getLabel(), checkers);
1✔
29
  }
1✔
30

31
  public OrChecker(DataElement field, String header, List<RuleChecker> checkers) {
32
    super(field, header + ":" + PREFIX + ":" + getChildrenHeader(checkers));
1✔
33
    this.checkers = checkers;
1✔
34
  }
1✔
35

36
  @Override
37
  public void update(Selector cache, FieldCounter<RuleCheckerOutput> results, RuleCheckingOutputType outputType) {
38
    if (isDebug())
1✔
39
      LOGGER.info(this.getClass().getSimpleName() + " " + this.id);
×
40

41
    var allPassed = false;
1✔
42
    var isNA = false;
1✔
43
    List<XmlFieldInstance> instances = cache.get(field);
1✔
44
    if (instances != null && !instances.isEmpty()) {
1✔
45
      FieldCounter<RuleCheckerOutput> localResults = new FieldCounter<>();
1✔
46
      for (RuleChecker checker : checkers) {
1✔
47
        if (checker instanceof DependencyChecker) {
1✔
NEW
48
          ((DependencyChecker) checker).update(cache, localResults, outputType, results);
×
49
        } else {
50
          checker.update(cache, localResults, outputType);
1✔
51
        }
52
        String key = outputType.equals(RuleCheckingOutputType.BOTH)
1✔
53
                   ? checker.getIdOrHeader(RuleCheckingOutputType.SCORE)
1✔
54
                   : checker.getIdOrHeader();
1✔
55
        if (localResults.get(key).getStatus().equals(RuleCheckingOutputStatus.PASSED)) {
1✔
56
          allPassed = true;
1✔
57
          break;
1✔
58
        }
59
      }
1✔
60
    } else {
1✔
61
      isNA = true;
×
62
    }
63
    addOutput(results, isNA, allPassed, outputType);
1✔
64
    if (isDebug())
1✔
NEW
65
      LOGGER.info(String.format("%s %s) isNA: %s, allPassed: %s, result: %s", this.getClass().getSimpleName(), this.id, isNA, allPassed, RuleCheckingOutputStatus.create(isNA, allPassed)));
×
66
  }
1✔
67
}
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