in src/main/java/com/epam/digital/data/platform/liquibase/extension/change/core/DdmCreateTableChange.java [153:179]
private ValidationErrors validateDateTimePatternsForAutoGeneratedValues(List<DdmColumnConfig> generatedColumns) {
ValidationErrors validationErrors = new ValidationErrors();
for (DdmColumnConfig column : generatedColumns) {
String pattern = column.getAutoGenerate();
pattern = pattern.replace("{SEQ}", "SEQ");
while (pattern.contains("{") && pattern.contains("}")
&& pattern.indexOf("{") < pattern.indexOf("}")) {
int beginIndex = pattern.indexOf("{");
int endIndex = pattern.indexOf("}");
String dateTimePattern = pattern.substring(beginIndex + 1, endIndex);
try {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateTimePattern);
dateTimeFormatter.format(LocalDateTime.now());
} catch (IllegalArgumentException e) {
validationErrors.addError(
String.format("Column '%s' contains a pattern '%s' that is not a date/time pattern", column.getName(), dateTimePattern));
} catch (Exception ex) {
validationErrors.addError(
String.format("Column '%s' contains a pattern '%s' that cannot be applied to date/time formatting", column.getName(), dateTimePattern));
}
pattern = pattern.replace("{" + dateTimePattern + "}", "dateTime");
}
}
return validationErrors;
}