in src/main/java/com/epam/digital/data/platform/liquibase/extension/change/core/DdmAbstractViewChange.java [69:102]
public ValidationErrors validate(Database database) {
ValidationErrors validationErrors = new ValidationErrors();
validationErrors.addAll(super.validate(database));
getJoins().stream().filter(join -> join.getLeftColumns().size() != join.getRightColumns().size())
.map(join -> "Different amount of columns in join clause").forEach(validationErrors::addError);
if (Boolean.TRUE.equals(getIndexing())) {
boolean hasSearchColumns = false;
for (DdmTableConfig table : getTables()) {
if (table.getColumns().stream().anyMatch(column -> column.getSearchType() != null)) {
hasSearchColumns = true;
}
}
if (!hasSearchColumns) {
validationErrors.addError("no search column is defined!");
}
}
for (DdmTableConfig table : getTables()) {
for (DdmFunctionConfig function : table.getFunctions()) {
boolean isStringAgg = function.getName().equals(DdmConstants.ATTRIBUTE_FUNCTION_STRING_AGG);
if (function.hasParameter() && !isStringAgg) {
validationErrors.addError("function " + function.getName().toUpperCase() + " doesn't required additional parameter!");
}
if (!function.hasParameter() && isStringAgg) {
validationErrors.addError("function " + function.getName().toUpperCase() + " required additional parameter!");
}
}
}
return validationErrors;
}