Package liquibase.change
Class ColumnConfig
- java.lang.Object
-
- liquibase.serializer.AbstractLiquibaseSerializable
-
- liquibase.change.ColumnConfig
-
- All Implemented Interfaces:
LiquibaseSerializable
- Direct Known Subclasses:
AddColumnConfig,LoadDataColumnConfig
public class ColumnConfig extends AbstractLiquibaseSerializable
The standard configuration used by Change classes to represent a column. It is not required that a column-based Change uses this class, but parsers should look for it so it is a helpful convenience. The definitions of "defaultValue" and "value" will vary based on the Change and may not be applicable in all cases.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classColumnConfig.ValueNumeric-
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
LiquibaseSerializable.SerializationType
-
-
Field Summary
-
Fields inherited from interface liquibase.serializer.LiquibaseSerializable
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACE
-
-
Constructor Summary
Constructors Constructor Description ColumnConfig()Create am empty ColumnConfig object.ColumnConfig(Column columnSnapshot)Create a ColumnConfig object based on aColumnsnapshot.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ColumnConfig[]arrayFromNames(String names)static ColumnConfigfromName(String name)BooleangetComputed()ConstraintsConfiggetConstraints()Returns the ConstraintsConfig this ColumnConfig is using.BooleangetDefaultOnNull()StringgetDefaultValue()The String default value to assign to this column.BooleangetDefaultValueBoolean()Return the boolean value this column should default to.DatabaseFunctiongetDefaultValueComputed()Return the function whose value should generate this column's default.StringgetDefaultValueConstraintName()DategetDefaultValueDate()Return the date value this column should default to.NumbergetDefaultValueNumeric()Return the numeric value this column should default to.ObjectgetDefaultValueObject()Return the value to set this column's default to according to the setDefaultValue* function that was called.SequenceNextValueFunctiongetDefaultValueSequenceNext()BooleangetDescending()StringgetEncoding()Return encoding of a file, referenced viavalueClobFile.StringgetGenerationType()BigIntegergetIncrementBy()Return the amount to auto increment by.StringgetName()The name of the column.StringgetRemarks()Return the remarks to apply to this column.LiquibaseSerializable.SerializationTypegetSerializableFieldType(String field)ObjectgetSerializableFieldValue(String field)StringgetSerializedObjectName()StringgetSerializedObjectNamespace()BigIntegergetStartWith()Return the number to start auto incrementing with.StringgetType()The data type fof the column.StringgetValue()The String value to set this column to.StringgetValueBlobFile()Return the file containing the data to load into a BLOB.BooleangetValueBoolean()Return the boolean value this column should be set to.StringgetValueClobFile()Return the file containing the data to load into a CLOB.DatabaseFunctiongetValueComputed()Return the function this column should be set from.DategetValueDate()Return the date value this column should be set to.NumbergetValueNumeric()Return the numeric value this column should be set to.ObjectgetValueObject()Return the value from whatever setValue* function was called.SequenceCurrentValueFunctiongetValueSequenceCurrent()SequenceNextValueFunctiongetValueSequenceNext()booleanhasDefaultValue()Returns true if any of the setDefaultValue* functions have had a non-null value setBooleanisAutoIncrement()Returns true if this Column should be set to be auto increment.voidload(ParsedNode parsedNode, ResourceAccessor resourceAccessor)protected voidloadConstraints(ParsedNode constraintsNode)ColumnConfigsetAutoIncrement(Boolean autoIncrement)ColumnConfigsetComputed(Boolean computed)ColumnConfigsetConstraints(ConstraintsConfig constraints)ColumnConfigsetDefaultOnNull(Boolean defaultOnNull)ColumnConfigsetDefaultValue(String defaultValue)Sets the string default value to assign to this column.ColumnConfigsetDefaultValueBoolean(Boolean defaultValueBoolean)ColumnConfigsetDefaultValueBoolean(String defaultValueBoolean)Set the defaultValueBoolean based on a given string.ColumnConfigsetDefaultValueComputed(DatabaseFunction defaultValueComputed)voidsetDefaultValueConstraintName(String defaultValueConstraintName)ColumnConfigsetDefaultValueDate(String defaultValueDate)Set the date this column should default to.ColumnConfigsetDefaultValueDate(Date defaultValueDate)ColumnConfigsetDefaultValueNumeric(Number defaultValueNumeric)ColumnConfigsetDefaultValueNumeric(String defaultValueNumeric)Set the number this column should use as its default.ColumnConfigsetDefaultValueSequenceNext(SequenceNextValueFunction defaultValueSequenceNext)ColumnConfigsetDescending(Boolean descending)ColumnConfigsetEncoding(String encoding)ColumnConfigsetGenerationType(String generationType)ColumnConfigsetIncrementBy(BigInteger incrementBy)ColumnConfigsetName(String name)ColumnConfigsetName(String name, boolean computed)ColumnConfigsetRemarks(String remarks)ColumnConfigsetStartWith(BigInteger startWith)ColumnConfigsetType(String type)ColumnConfigsetValue(String value)Sets the string value this column should be set to.ColumnConfigsetValueBlobFile(String valueBlobFile)ColumnConfigsetValueBoolean(Boolean valueBoolean)ColumnConfigsetValueBoolean(String valueBoolean)Set the valueBoolean based on a given string.ColumnConfigsetValueClobFile(String valueClobFile)ColumnConfigsetValueComputed(DatabaseFunction valueComputed)ColumnConfigsetValueDate(String valueDate)Set the date this column should be set to.ColumnConfigsetValueDate(Date valueDate)ColumnConfigsetValueNumeric(Number valueNumeric)ColumnConfigsetValueNumeric(String valueNumeric)Set the number this column should be set to.ColumnConfigsetValueSequenceCurrent(SequenceCurrentValueFunction valueSequenceCurrent)ColumnConfigsetValueSequenceNext(SequenceNextValueFunction valueSequenceNext)-
Methods inherited from class liquibase.serializer.AbstractLiquibaseSerializable
convertEscaped, getSerializableFieldDataTypeClass, getSerializableFieldDataTypeClassParameters, getSerializableFieldNamespace, getSerializableFields, serialize, serializeValue, setSerializableFieldValue, shouldAutoLoad
-
-
-
-
Constructor Detail
-
ColumnConfig
public ColumnConfig(Column columnSnapshot)
Create a ColumnConfig object based on aColumnsnapshot. It will attempt to set as much as possible based on the information in the snapshot.
-
ColumnConfig
public ColumnConfig()
Create am empty ColumnConfig object. Boolean and other object values will default to null.
-
-
Method Detail
-
fromName
public static ColumnConfig fromName(String name)
-
arrayFromNames
public static ColumnConfig[] arrayFromNames(String names)
-
getName
public String getName()
The name of the column.
-
setName
public ColumnConfig setName(String name)
-
setName
public ColumnConfig setName(String name, boolean computed)
-
getComputed
public Boolean getComputed()
-
setComputed
public ColumnConfig setComputed(Boolean computed)
-
getType
public String getType()
The data type fof the column. This value will pass throughDataTypeFactory.fromDescription(String, liquibase.database.Database)before being included in SQL.
-
setType
public ColumnConfig setType(String type)
-
getValue
public String getValue()
The String value to set this column to. If you do not want the value set bysetValue(String)use a more specific function likegetValueNumeric()or the more genericgetValueObject()If performing an data manipulation operation, the setValue* functions should be used to set what the columns should be set to. If performing a data definition operation, this setValue* functions should be used to set what existing rows should be set to (may be different than the default value for new rows)
-
setValue
public ColumnConfig setValue(String value)
Sets the string value this column should be set to. If you are trying to set a value type other than a string, use the more specific functions likesetValueNumeric(Number). This method does no processing of the string. Any trimming is expected to be done beforehand. It does not convert the string "null" to null so that you can set the string "null" as a value if you are feeling particularly crazy.
-
getValueNumeric
public Number getValueNumeric()
Return the numeric value this column should be set to.- See Also:
setValue(String)
-
setValueNumeric
public ColumnConfig setValueNumeric(Number valueNumeric)
-
setValueNumeric
public ColumnConfig setValueNumeric(String valueNumeric)
Set the number this column should be set to. Supports integers and decimals, and strips off any wrapping parentheses. If the passed value cannot be parsed as a number in US locale, it is assumed to be a function that returns a number. If the value "null" is passed, it will set a null value.
-
getValueBoolean
public Boolean getValueBoolean()
Return the boolean value this column should be set to.- See Also:
setValue(String)
-
setValueBoolean
public ColumnConfig setValueBoolean(String valueBoolean)
Set the valueBoolean based on a given string. If the passed value cannot be parsed as a boolean, it is assumed to be a function that returns a boolean. If the string "null" or an empty string is passed, it will set a null value. If "1" is passed, defaultValueBoolean is set to true. If 0 is passed, defaultValueBoolean is set to false
-
setValueBoolean
public ColumnConfig setValueBoolean(Boolean valueBoolean)
-
getValueComputed
public DatabaseFunction getValueComputed()
Return the function this column should be set from.- See Also:
setValue(String)
-
setValueComputed
public ColumnConfig setValueComputed(DatabaseFunction valueComputed)
-
getValueSequenceNext
public SequenceNextValueFunction getValueSequenceNext()
-
setValueSequenceNext
public ColumnConfig setValueSequenceNext(SequenceNextValueFunction valueSequenceNext)
-
getValueSequenceCurrent
public SequenceCurrentValueFunction getValueSequenceCurrent()
-
setValueSequenceCurrent
public ColumnConfig setValueSequenceCurrent(SequenceCurrentValueFunction valueSequenceCurrent)
-
getValueDate
public Date getValueDate()
Return the date value this column should be set to.- See Also:
setValue(String)
-
setValueDate
public ColumnConfig setValueDate(String valueDate) throws DateParseException
Set the date this column should be set to. Supports any of the date or datetime formats handled byISODateFormat. If the passed value cannot be parsed as a date, it is assumed to be a function that returns a date. If the string "null" is passed, it will set a null value.- Parameters:
valueDate- the Date Value to use (may be null or "null", or start with "now" or "today").- Throws:
DateParseException- if the columnType isn't supported for "now" or "today" values.
-
setValueDate
public ColumnConfig setValueDate(Date valueDate)
-
getValueBlobFile
public String getValueBlobFile()
Return the file containing the data to load into a BLOB.- See Also:
setValue(String)
-
setValueBlobFile
public ColumnConfig setValueBlobFile(String valueBlobFile)
-
getValueClobFile
public String getValueClobFile()
Return the file containing the data to load into a CLOB.- See Also:
setValue(String)
-
setValueClobFile
public ColumnConfig setValueClobFile(String valueClobFile)
-
getEncoding
public String getEncoding()
Return encoding of a file, referenced viavalueClobFile.
-
setEncoding
public ColumnConfig setEncoding(String encoding)
-
getValueObject
public Object getValueObject()
Return the value from whatever setValue* function was called. Will return null if none were set.
-
getDefaultValue
public String getDefaultValue()
The String default value to assign to this column. If you do not want the default set bysetDefaultValue(String)use a more specific function likegetDefaultValueNumeric()or the more genericgetDefaultValueObject()
-
setDefaultValue
public ColumnConfig setDefaultValue(String defaultValue)
Sets the string default value to assign to this column. If you are trying to set a default value type other than a string, use the more specific functions likesetDefaultValueNumeric(Number). This method does no processing of the string. Any trimming is expected to be done beforehand. It does not convert the string "null" to null so that you can set the string "null" as a value if you are feeling particularly crazy.
-
getDefaultValueNumeric
public Number getDefaultValueNumeric()
Return the numeric value this column should default to.- See Also:
setDefaultValue(String)
-
setDefaultValueNumeric
public ColumnConfig setDefaultValueNumeric(String defaultValueNumeric)
Set the number this column should use as its default. Supports integers and decimals, and strips off any wrapping parentheses. If the passed value cannot be parsed as a number, it is assumed to be a function that returns a number. If the value "null" is passed, it will set a null value. A special case is made for "GENERATED_BY_DEFAULT" which simply sets the ColumnConfig object to autoIncrement.
-
setDefaultValueNumeric
public ColumnConfig setDefaultValueNumeric(Number defaultValueNumeric)
-
getDefaultValueDate
public Date getDefaultValueDate()
Return the date value this column should default to.- See Also:
setDefaultValue(String)
-
setDefaultValueDate
public ColumnConfig setDefaultValueDate(Date defaultValueDate)
-
setDefaultValueDate
public ColumnConfig setDefaultValueDate(String defaultValueDate)
Set the date this column should default to. Supports any of the date or datetime formats handled byISODateFormat. If the passed value cannot be parsed as a date, it is assumed to be a function that returns a date. If the string "null" or an empty string is passed, it will set a null value.
-
getDefaultValueBoolean
public Boolean getDefaultValueBoolean()
Return the boolean value this column should default to.- See Also:
setDefaultValue(String)
-
setDefaultValueBoolean
public ColumnConfig setDefaultValueBoolean(String defaultValueBoolean)
Set the defaultValueBoolean based on a given string. If the passed value cannot be parsed as a boolean, it is assumed to be a function that returns a boolean. If the string "null" or an empty string is passed, it will set a null value. If "1" is passed, defaultValueBoolean is set to true. If 0 is passed, defaultValueBoolean is set to false
-
setDefaultValueBoolean
public ColumnConfig setDefaultValueBoolean(Boolean defaultValueBoolean)
-
getDefaultValueComputed
public DatabaseFunction getDefaultValueComputed()
Return the function whose value should generate this column's default.- See Also:
setDefaultValue(String)
-
setDefaultValueComputed
public ColumnConfig setDefaultValueComputed(DatabaseFunction defaultValueComputed)
-
getDefaultValueObject
public Object getDefaultValueObject()
Return the value to set this column's default to according to the setDefaultValue* function that was called. If none were called, this function returns null.
-
getConstraints
public ConstraintsConfig getConstraints()
Returns the ConstraintsConfig this ColumnConfig is using. Returns null if nho constraints have been assigned yet.
-
setConstraints
public ColumnConfig setConstraints(ConstraintsConfig constraints)
-
isAutoIncrement
public Boolean isAutoIncrement()
Returns true if this Column should be set to be auto increment. Returns null if auto-increment hasn't been explicitly assigned.
-
setAutoIncrement
public ColumnConfig setAutoIncrement(Boolean autoIncrement)
-
getStartWith
public BigInteger getStartWith()
Return the number to start auto incrementing with.
-
setStartWith
public ColumnConfig setStartWith(BigInteger startWith)
-
getIncrementBy
public BigInteger getIncrementBy()
Return the amount to auto increment by.
-
setIncrementBy
public ColumnConfig setIncrementBy(BigInteger incrementBy)
-
hasDefaultValue
public boolean hasDefaultValue()
Returns true if any of the setDefaultValue* functions have had a non-null value set
-
getRemarks
public String getRemarks()
Return the remarks to apply to this column.
-
setRemarks
public ColumnConfig setRemarks(String remarks)
-
getDescending
public Boolean getDescending()
-
setDescending
public ColumnConfig setDescending(Boolean descending)
-
getDefaultOnNull
public Boolean getDefaultOnNull()
-
setDefaultOnNull
public ColumnConfig setDefaultOnNull(Boolean defaultOnNull)
-
getGenerationType
public String getGenerationType()
-
setGenerationType
public ColumnConfig setGenerationType(String generationType)
-
getSerializedObjectName
public String getSerializedObjectName()
-
getDefaultValueSequenceNext
public SequenceNextValueFunction getDefaultValueSequenceNext()
-
setDefaultValueSequenceNext
public ColumnConfig setDefaultValueSequenceNext(SequenceNextValueFunction defaultValueSequenceNext)
-
getDefaultValueConstraintName
public String getDefaultValueConstraintName()
-
setDefaultValueConstraintName
public void setDefaultValueConstraintName(String defaultValueConstraintName)
-
getSerializableFieldType
public LiquibaseSerializable.SerializationType getSerializableFieldType(String field)
- Specified by:
getSerializableFieldTypein interfaceLiquibaseSerializable- Overrides:
getSerializableFieldTypein classAbstractLiquibaseSerializable
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
-
load
public void load(ParsedNode parsedNode, ResourceAccessor resourceAccessor) throws ParsedNodeException
- Specified by:
loadin interfaceLiquibaseSerializable- Overrides:
loadin classAbstractLiquibaseSerializable- Throws:
ParsedNodeException
-
loadConstraints
protected void loadConstraints(ParsedNode constraintsNode) throws ParsedNodeException
- Throws:
ParsedNodeException
-
getSerializableFieldValue
public Object getSerializableFieldValue(String field)
- Specified by:
getSerializableFieldValuein interfaceLiquibaseSerializable- Overrides:
getSerializableFieldValuein classAbstractLiquibaseSerializable
-
-