package net.sf.minuteProject.configuration.bean.enrichment.convention;
import java.util.List;
import net.sf.minuteProject.configuration.bean.BusinessModel;
import net.sf.minuteProject.configuration.bean.model.data.Column;
import net.sf.minuteProject.configuration.bean.model.data.Table;
import net.sf.minuteProject.utils.ColumnUtils;
import net.sf.minuteProject.utils.parser.ParserUtils;
import org.apache.commons.lang.StringUtils;
public class VersionConvention extends ModelConvention {
public static final String defaultVersionColumnName = "version";
@Override
public void apply(BusinessModel model) {
if (model.getBusinessPackage()!=null) {
for (Table table : model.getBusinessPackage().getEntities()) {
apply (table, model);
}
}
}
private void apply(Table table, BusinessModel model) {
for (String s : getVersionColumnName()) {
apply (ColumnUtils.getColumn(table, StringUtils.upperCase(s)));
}
}
private void apply(Column column) {
if (column!=null) {
column.setVersion(true);
}
}
public String getDefaultValue() {
if (defaultValue==null || defaultValue.isEmpty())
defaultValue = defaultVersionColumnName;
return defaultValue;
}
private List<String> getVersionColumnName () {
return ParserUtils.getList(defaultValue);
}
}