public Set validate()

in src/main/java/com/epam/digital/data/platform/registry/regulation/validation/cli/validator/report/ReportRoleExistenceValidator.java [43:75]


  public Set<ValidationError> validate(RegulationFiles regulation, ValidationContext context) {
    List<String> reportsRolesNames = new ArrayList<>();
    Set<String> existingRoles = new HashSet<>();
    Set<ValidationError> errors = new HashSet<>();

    regulation.getReportsFolders().forEach(folder ->
        reportsRolesNames.addAll(getReportsRolesNames(folder)));

    for (File file : regulation.getRolesFiles()) {
      try {
        if (file.getName().equals(officerPermissionsFile)) {
          existingRoles.addAll(getExistingRolesInBpFile(file));
        }
      } catch (IOException e) {
        errors.add(
            ValidationError.of(context.getRegulationFileType(), file,
                "Exception during reading file"));
      }
    }

    if (null != defaultRoles) {
      existingRoles.addAll(defaultRoles);
    }

    for (String role : reportsRolesNames) {
      if (!existingRoles.contains(role)) {
        errors.add(
            ValidationError.of(context.getRegulationFileType(), new File(role),
                String.format("Role with name : %s does not exists", role)));
      }
    }
    return errors;
  }