package liquibase.datatype; import liquibase.util.StringUtils; public class DatabaseDataType { private String type; public DatabaseDataType(String type) { this.type = type; } public void addAdditionalInformation(String additionalInformation) { if (additionalInformation != null) { this.type += " "+additionalInformation; } } public DatabaseDataType(String name, Object... parameters) { if (parameters == null) { parameters = new Object[0]; } this.type = name; String[] stringParams = new String[parameters.length]; if (parameters.length > 0) { for (int i=0; i<parameters.length; i++){ if (parameters[i] == null) { stringParams[i] = "NULL"; } else { stringParams[i] = parameters[i].toString(); } } type += "("+ StringUtils.join(stringParams, ", ")+")"; } } /** * Mainly for postgres, check if the column is a serial data type. * @return Whether the type is serial */ public boolean isAutoIncrement() { return type.equalsIgnoreCase("serial") || type.equalsIgnoreCase("bigserial") || type.equalsIgnoreCase("smallserial"); } public String toSql() { return toString(); } @Override public String toString() { return type; } public String getType() { return type; } public void setType(final String type) { this.type = type; } }