Class 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.
  • Constructor Details

    • ColumnConfig

      public ColumnConfig(Column columnSnapshot)
      Create a ColumnConfig object based on a Column snapshot. 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 Details

    • 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 through DataTypeFactory.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 by setValue(String) use a more specific function like getValueNumeric() or the more generic getValueObject()

      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 like setValueNumeric(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:
    • 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:
    • 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:
    • 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:
    • 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 by ISODateFormat. 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:
    • setValueBlobFile

      public ColumnConfig setValueBlobFile(String valueBlobFile)
    • getValueClobFile

      public String getValueClobFile()
      Return the file containing the data to load into a CLOB.
      See Also:
    • setValueClobFile

      public ColumnConfig setValueClobFile(String valueClobFile)
    • getEncoding

      public String getEncoding()
      Return encoding of a file, referenced via valueClobFile.
    • 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 by setDefaultValue(String) use a more specific function like getDefaultValueNumeric() or the more generic getDefaultValueObject()
    • 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 like setDefaultValueNumeric(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:
    • 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:
    • 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 by ISODateFormat. 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:
    • 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:
    • 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:
      getSerializableFieldType in interface LiquibaseSerializable
      Overrides:
      getSerializableFieldType in class AbstractLiquibaseSerializable
    • getSerializedObjectNamespace

      public String getSerializedObjectNamespace()
    • load

      public void load(ParsedNode parsedNode, ResourceAccessor resourceAccessor) throws ParsedNodeException
      Specified by:
      load in interface LiquibaseSerializable
      Overrides:
      load in class AbstractLiquibaseSerializable
      Throws:
      ParsedNodeException
    • loadConstraints

      protected void loadConstraints(ParsedNode constraintsNode) throws ParsedNodeException
      Throws:
      ParsedNodeException
    • getSerializableFieldValue

      public Object getSerializableFieldValue(String field)
      Specified by:
      getSerializableFieldValue in interface LiquibaseSerializable
      Overrides:
      getSerializableFieldValue in class AbstractLiquibaseSerializable