in src/main/java/com/epam/digital/data/platform/liquibase/extension/change/core/DdmCreateTableChange.java [443:499]
public void load(
ParsedNode parsedNode, ResourceAccessor resourceAccessor) throws ParsedNodeException {
ChangeMetaData metaData = Scope.getCurrentScope().getSingleton(ChangeFactory.class).getChangeMetaData(this);
try {
Collection<ChangeParameterMetaData> changeParameters = metaData.getParameters().values();
for (ChangeParameterMetaData param : changeParameters) {
if (Collection.class.isAssignableFrom(param.getDataTypeClass())) {
if (param.getDataTypeClassParameters().length == 1) {
Class collectionType = (Class) param.getDataTypeClassParameters()[0];
if (ColumnConfig.class.isAssignableFrom(collectionType)) {
List<ParsedNode> columnNodes = new ArrayList<>(
parsedNode.getChildren(null, param.getParameterName())
);
columnNodes.addAll(parsedNode.getChildren(null, NODENAME_COLUMN));
for (ParsedNode child : columnNodes) {
if (NODENAME_COLUMN.equals(child.getName()) || "columns".equals(child.getName())) {
List<ParsedNode> columnChildren = child.getChildren(null, NODENAME_COLUMN);
if ((columnChildren != null) && !columnChildren.isEmpty()) {
for (ParsedNode columnChild : columnChildren) {
DdmColumnConfig columnConfig = new DdmColumnConfig();
columnConfig.load(columnChild, resourceAccessor);
((ChangeWithColumns) this).addColumn(columnConfig);
}
} else {
DdmColumnConfig columnConfig = new DdmColumnConfig();
columnConfig.load(child, resourceAccessor);
((ChangeWithColumns) this).addColumn(columnConfig);
}
}
}
}
}
} else {
Object childValue = parsedNode.getChildValue(
null, param.getParameterName(), param.getDataTypeClass()
);
if ((childValue == null) && (param.getSerializationType() == SerializationType.DIRECT_VALUE)) {
childValue = parsedNode.getValue();
}
if(childValue != null) {
param.setValue(this, childValue);
}
}
}
} catch (Exception e) {
throw new UnexpectedLiquibaseException(e);
}
customLoadLogic(parsedNode, resourceAccessor);
try {
this.finishInitialization();
} catch (SetupException e) {
throw new ParsedNodeException(e);
}
}