Class ColumnBuilder


  • public class ColumnBuilder
    extends Object
    Builder style class for constructing a Column. See TableBuilder for example usage. Additionally, a Column can be added to an existing Table using the addToTable(Table) method.
    Author:
    James Ahlborn
    See Also:
    TableBuilder
    Usage:
    General: This class is general use.
    • Constructor Detail

      • ColumnBuilder

        public ColumnBuilder​(String name)
      • ColumnBuilder

        public ColumnBuilder​(String name,
                             DataType type)
    • Method Detail

      • getName

        public String getName()
      • setSQLType

        public ColumnBuilder setSQLType​(int type,
                                        int lengthInUnits)
                                 throws IOException
        Sets the type for the new column based on the given SQL type and target data length (in type specific units).
        Throws:
        IOException
      • setSQLType

        public ColumnBuilder setSQLType​(int type,
                                        int lengthInUnits,
                                        Database.FileFormat fileFormat)
                                 throws IOException
        Sets the type for the new column based on the given SQL type, target data length (in type specific units), and target FileFormat.
        Throws:
        IOException
      • setPrecision

        public ColumnBuilder setPrecision​(int newPrecision)
        Sets the precision for the new column.
      • getPrecision

        public byte getPrecision()
      • setMaxPrecision

        public ColumnBuilder setMaxPrecision()
        Sets the precision for the new column to the max length for the type. Does nothing for types which do not have a precision.
      • setScale

        public ColumnBuilder setScale​(int newScale)
        Sets the scale for the new column.
      • getScale

        public byte getScale()
      • setMaxScale

        public ColumnBuilder setMaxScale()
        Sets the scale for the new column to the max length for the type. Does nothing for types which do not have a scale.
      • setLength

        public ColumnBuilder setLength​(int length)
        Sets the length (in bytes) for the new column.
      • getLength

        public short getLength()
      • setLengthInUnits

        public ColumnBuilder setLengthInUnits​(int unitLength)
        Sets the length (in type specific units) for the new column.
      • setMaxLength

        public ColumnBuilder setMaxLength()
        Sets the length for the new column to the max length for the type. Does nothing for types which are not variable length.
      • setAutoNumber

        public ColumnBuilder setAutoNumber​(boolean autoNumber)
        Sets whether of not the new column is an auto-number column.
      • isAutoNumber

        public boolean isAutoNumber()
      • setCompressedUnicode

        public ColumnBuilder setCompressedUnicode​(boolean compressedUnicode)
        Sets whether of not the new column allows unicode compression.
      • isCompressedUnicode

        public boolean isCompressedUnicode()
      • setCalculated

        public ColumnBuilder setCalculated​(boolean calculated)
        Sets whether of not the new column is a calculated column.
      • isCalculated

        public boolean isCalculated()
      • setCalculatedInfo

        public ColumnBuilder setCalculatedInfo​(String expression)
        Convenience method to set the various info for a calculated type (flag, result type property and expression)
      • isVariableLength

        public boolean isVariableLength()
      • setHyperlink

        public ColumnBuilder setHyperlink​(boolean hyperlink)
        Sets whether of not the new column allows unicode compression.
      • isHyperlink

        public boolean isHyperlink()
      • putProperty

        public ColumnBuilder putProperty​(String name,
                                         Object value)
        Sets the column property with the given name to the given value. Attempts to determine the type of the property (see PropertyMap.put(String,Object) for details on determining the property type).
      • putProperty

        public ColumnBuilder putProperty​(String name,
                                         DataType type,
                                         Object value)
        Sets the column property with the given name and type to the given value.
      • setFromColumn

        public ColumnBuilder setFromColumn​(Column template)
                                    throws IOException
        Sets all attributes except name from the given Column template (including all column properties except GUID).
        Throws:
        IOException
      • setFromColumn

        public ColumnBuilder setFromColumn​(ColumnBuilder template)
        Sets all attributes except name from the given Column template.
      • getColumnNumber

        public short getColumnNumber()
        Usage:
        Advanced: This method is for advanced/internal use.
      • setColumnNumber

        public void setColumnNumber​(short newColumnNumber)
        Usage:
        Advanced: This method is for advanced/internal use.
      • getColumnId

        public short getColumnId()
        Usage:
        Advanced: This method is for advanced/internal use.
      • setColumnId

        public void setColumnId​(short newColumnId)
        Usage:
        Advanced: This method is for advanced/internal use.
      • getTextSortOrder

        public ColumnImpl.SortOrder getTextSortOrder()
        Usage:
        Advanced: This method is for advanced/internal use.
      • setTextSortOrder

        public void setTextSortOrder​(ColumnImpl.SortOrder newTextSortOrder)
        Usage:
        Advanced: This method is for advanced/internal use.
      • storeInNullMask

        public boolean storeInNullMask()
        Usage:
        Advanced: This method is for advanced/internal use.
      • getFixedDataSize

        public int getFixedDataSize()
        Usage:
        Advanced: This method is for advanced/internal use.
      • validate

        public void validate​(JetFormat format)
        Checks that this column definition is valid.
        Throws:
        IllegalArgumentException - if this column definition is invalid.
        Usage:
        Advanced: This method is for advanced/internal use.
      • toColumn

        public ColumnBuilder toColumn()
        Creates a new Column with the currently configured attributes.
      • addToTable

        public Column addToTable​(Table table)
                          throws IOException
        Adds a new Column to the given Table with the currently configured attributes.
        Throws:
        IOException