001package org.hl7.fhir.r5.terminologies.validation;
002
003import java.util.ArrayList;
004import java.util.List;
005
006import org.hl7.fhir.r5.model.OperationOutcome.IssueSeverity;
007import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent;
008import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass;
009import org.hl7.fhir.utilities.CommaSeparatedStringBuilder;
010
011public class ValidationProcessInfo {
012  private TerminologyServiceErrorClass err;
013  private List<OperationOutcomeIssueComponent> issues = new ArrayList<>();
014  
015  public ValidationProcessInfo() {
016  }
017  
018  public ValidationProcessInfo(List<OperationOutcomeIssueComponent> issues) {
019    this.issues = issues;
020  }
021  public TerminologyServiceErrorClass getErr() {
022    return err;
023  }
024  public void setErr(TerminologyServiceErrorClass err) {
025    this.err = err;
026  }
027  
028  public List<OperationOutcomeIssueComponent> getIssues() {
029    return issues;
030  }
031  public void addIssue(List<OperationOutcomeIssueComponent> issues) {
032    this.issues.addAll(issues);
033    
034  }
035  public boolean hasErrors() {
036    for (OperationOutcomeIssueComponent issue : issues) {
037      if (issue.getSeverity() == IssueSeverity.FATAL || issue.getSeverity() == IssueSeverity.ERROR) {
038        return true;
039      }
040    }
041    return false;
042  }
043  public String summary() {
044    CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder("; ");
045    for (OperationOutcomeIssueComponent issue : issues) {
046      b.append(issue.getDetails().getText());
047    }
048    return b.toString();
049  }
050}