Class DataTableDef

java.lang.Object
com.mckoi.database.DataTableDef

public class DataTableDef extends Object
A definition of a table. Every table in the database has a definition that describes how it is stored on disk, the column definitions, primary keys/foreign keys, and any check constraints.
Author:
Tobias Downer
  • Constructor Details

    • DataTableDef

      public DataTableDef()
      Constructs this DataTableDef file.
    • DataTableDef

      public DataTableDef(DataTableDef table_def)
      Copy constructor.
  • Method Details

    • setImmutable

      public void setImmutable()
      Sets this DataTableDef to immutable which means nothing is able to change it.
    • immutable

      public boolean immutable()
      Returns true if this is immutable.
    • dump

      public void dump(PrintStream out)
      Outputs to the PrintStream for debugging.
    • resolveColumnName

      public String resolveColumnName(String col_name, boolean ignore_case) throws DatabaseException
      Resolves a single column name to its correct form. For example, if the database is in case insensitive mode it'll resolve ID to 'id' if 'id' is in this table. Throws a database exception if a column couldn't be resolved (ambiguous or not found).
      Throws:
      DatabaseException
    • resolveColumnsInArray

      public void resolveColumnsInArray(DatabaseConnection connection, ArrayList list) throws DatabaseException
      Given a list of column names referencing entries in this table, this will resolve each one to its correct form. Throws a database exception if a column couldn't be resolved.
      Throws:
      DatabaseException
    • setTableName

      public void setTableName(TableName name)
    • setTableClass

      public void setTableClass(String clazz)
    • addColumn

      public void addColumn(DataTableColumnDef col_def)
    • addVirtualColumn

      public void addVirtualColumn(DataTableColumnDef col_def)
      Same as 'addColumn' only this does not perform a check to ensure no two columns are the same.
    • getSchema

      public String getSchema()
    • getName

      public String getName()
    • getTableName

      public TableName getTableName()
    • getTableClass

      public String getTableClass()
    • columnCount

      public int columnCount()
    • columnAt

      public DataTableColumnDef columnAt(int column)
    • findColumnName

      public int findColumnName(String column_name)
    • fastFindColumnName

      public final int fastFindColumnName(String col)
      A faster way to find a column index given a string column name. This caches column name -> column index in a HashMap.
    • noColumnCopy

      public DataTableDef noColumnCopy()
      Returns a copy of this object, except with no columns or constraints.