com.healthmarketscience.jackcess
Class ColumnBuilder

java.lang.Object
  extended by com.healthmarketscience.jackcess.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 Summary
ColumnBuilder(String name)
           
ColumnBuilder(String name, DataType type)
           
 
Method Summary
 Column addToTable(Table table)
          Adds a new Column to the given Table with the currently configured attributes.
 ColumnBuilder escapeName()
          Escapes the new column's name using TableBuilder.escapeIdentifier(java.lang.String).
 short getColumnNumber()
           
 short getLength()
           
 String getName()
           
 byte getPrecision()
           
 Map<String,PropertyMap.Property> getProperties()
           
 byte getScale()
           
 ColumnImpl.SortOrder getTextSortOrder()
           
 DataType getType()
           
 boolean isAutoNumber()
           
 boolean isCalculated()
           
 boolean isCompressedUnicode()
           
 boolean isHyperlink()
           
 boolean isVariableLength()
           
 ColumnBuilder putProperty(String name, DataType type, Object value)
          Sets the column property with the given name and type to the given value.
 ColumnBuilder putProperty(String name, Object value)
          Sets the column property with the given name to the given value.
 ColumnBuilder setAutoNumber(boolean autoNumber)
          Sets whether of not the new column is an auto-number column.
 ColumnBuilder setCalculated(boolean calculated)
          Sets whether of not the new column is a calculated column.
 ColumnBuilder setCalculatedInfo(String expression)
          Convenience method to set the various info for a calculated type (flag, result type property and expression)
 void setColumnNumber(short newColumnNumber)
           
 ColumnBuilder setCompressedUnicode(boolean compressedUnicode)
          Sets whether of not the new column allows unicode compression.
 ColumnBuilder setFromColumn(Column template)
          Sets all attributes except name from the given Column template (including all column properties except GUID).
 ColumnBuilder setFromColumn(ColumnBuilder template)
          Sets all attributes except name from the given Column template.
 ColumnBuilder setHyperlink(boolean hyperlink)
          Sets whether of not the new column allows unicode compression.
 ColumnBuilder setLength(int length)
          Sets the length (in bytes) for the new column.
 ColumnBuilder setLengthInUnits(int unitLength)
          Sets the length (in type specific units) for the new column.
 ColumnBuilder setMaxLength()
          Sets the length for the new column to the max length for the type.
 ColumnBuilder setMaxPrecision()
          Sets the precision for the new column to the max length for the type.
 ColumnBuilder setMaxScale()
          Sets the scale for the new column to the max length for the type.
 ColumnBuilder setPrecision(int newPrecision)
          Sets the precision for the new column.
 ColumnBuilder setScale(int newScale)
          Sets the scale for the new column.
 ColumnBuilder setSQLType(int type)
          Sets the type for the new column based on the given SQL type.
 ColumnBuilder setSQLType(int type, int lengthInUnits)
          Sets the type for the new column based on the given SQL type and target data length (in type specific units).
 void setTextSortOrder(ColumnImpl.SortOrder newTextSortOrder)
           
 ColumnBuilder setType(DataType type)
          Sets the type for the new column.
 ColumnBuilder toColumn()
          Creates a new Column with the currently configured attributes.
 void validate(JetFormat format)
          Checks that this column definition is valid.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ColumnBuilder

public ColumnBuilder(String name)

ColumnBuilder

public ColumnBuilder(String name,
                     DataType type)
Method Detail

getName

public String getName()

setType

public ColumnBuilder setType(DataType type)
Sets the type for the new column.


getType

public DataType getType()

setSQLType

public ColumnBuilder setSQLType(int type)
                         throws SQLException
Sets the type for the new column based on the given SQL type.

Throws:
SQLException

setSQLType

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

Throws:
SQLException

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.


getProperties

public Map<String,PropertyMap.Property> getProperties()

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.


escapeName

public ColumnBuilder escapeName()
Escapes the new column's name using TableBuilder.escapeIdentifier(java.lang.String).


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.

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.

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


Copyright © 2005–2017 Health Market Science. All rights reserved.