Package com.mckoi.database
Class DataTableColumnDef
- java.lang.Object
-
- com.mckoi.database.DataTableColumnDef
-
public class DataTableColumnDef extends java.lang.Object
All the information regarding a column in a table.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
class_constraint
If this is a Java Object column, this is a constraint that the object must be derived from to be added to this column.private java.lang.Class
constraining_class
The constraining Class object itself.private byte[]
constraints_format
A string that contains some constraints.private int
db_type
The actual column type in the database (as defined in com.mckoi.database.global.Types).private java.lang.String
default_expression_string
The default expression string.private java.lang.String
foreign_key
Deprecated.private java.lang.String
index_desc
The type of index to use on this column.private java.lang.String
locale_str
The locale string if this column represents a string.private java.lang.String
name
The name of the column.private int
scale
The scale of the data.private int
size
The size of the data.private int
sql_type
The sql column type (as defined in java.sql.Types).private int
str_decomposition
The locale Collator decomposition if this column represents a string.private int
str_strength
The locale Collator strength if this column represents a string.TType
type
The TType object for this column.
-
Constructor Summary
Constructors Constructor Description DataTableColumnDef()
Constructs the column definition.DataTableColumnDef(DataTableColumnDef column_def)
Creates a copy of the given column definition.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.Class
classType()
Returns the Class of Java object that represents this column.ColumnDescription
columnDescriptionValue(java.lang.String column_name)
Returns this column as a ColumnDescription object and gives the column description the given name.(package private) boolean
compatIsPrimaryKey()
(package private) boolean
compatIsUnique()
static DataTableColumnDef
createBinaryColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a binary value.static DataTableColumnDef
createBooleanColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a boolean value.static DataTableColumnDef
createNumericColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a numeric value.static DataTableColumnDef
createStringColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a string value.(package private) static TType
createTTypeFor(int sql_type, int size, int scale, java.lang.String locale, int str_strength, int str_decomposition, java.lang.String java_class)
Returns a TType object for a column with the given type information.void
dump(java.io.PrintStream out)
Dumps information about this object to the PrintStream.java.lang.String
getClassConstraint()
If this column represents a Java Object, this returns the name of the class the objects stored in the column must be derived from.java.lang.Class
getClassConstraintAsClass()
If this column represents a Java Object, this returns the class object that is the constraining class for the column.int
getDBType()
java.lang.String
getDBTypeString()
Returns the type as a String.int
getDecomposition()
Expression
getDefaultExpression(TransactionSystem system)
java.lang.String
getDefaultExpressionString()
java.lang.String
getForeignKey()
Deprecated.java.lang.String
getIndexScheme()
Returns the name of the scheme we use to index this column.java.lang.String
getLocaleString()
java.lang.String
getName()
int
getScale()
int
getSize()
int
getSQLType()
java.lang.String
getSQLTypeString()
Returns the type as a String.int
getStrength()
TType
getTType()
Returns the TType for this column.void
initTTypeInfo()
Initializes the TType information for a column.boolean
isIndexableType()
Returns true if this type of column is able to be indexed.boolean
isNotNull()
(package private) static DataTableColumnDef
read(java.io.DataInput in)
Reads this column from a DataInputStream.void
setClassConstraint(java.lang.String class_constraint)
If this column represents a Java object, this must be a class the object is derived from to be added to this column.void
setDBType(int db_type)
void
setDefaultExpression(Expression expression)
void
setForeignKey(java.lang.String foreign_key)
Deprecated.void
setFromTType(TType type)
Sets this DataTableColumnDef object up from information in the TType object.void
setIndexScheme(java.lang.String index_scheme)
Sets the indexing scheme for this column.void
setName(java.lang.String name)
void
setNotNull(boolean status)
void
setScale(int scale)
void
setSize(int size)
void
setSQLType(int sql_type)
void
setStringLocale(java.lang.String locale_str, int strength, int decomposition)
static java.lang.String
sqlTypeToString(int sql_type)
Returns a string that represents the given SQLType enumeration passed to it.(package private) void
write(java.io.DataOutput out)
Writes this column information out to a DataOutputStream.
-
-
-
Field Detail
-
constraints_format
private byte[] constraints_format
A string that contains some constraints. This string contains information about whether the column is not null, unique, primary key, etc.
-
name
private java.lang.String name
The name of the column.
-
sql_type
private int sql_type
The sql column type (as defined in java.sql.Types).
-
db_type
private int db_type
The actual column type in the database (as defined in com.mckoi.database.global.Types).
-
size
private int size
The size of the data.
-
scale
private int scale
The scale of the data.
-
locale_str
private java.lang.String locale_str
The locale string if this column represents a string. If this is an empty string, the column has no locale (the string is collated lexicographically).
-
str_strength
private int str_strength
The locale Collator strength if this column represents a string. The value here is taken from java.text.Collator.
-
str_decomposition
private int str_decomposition
The locale Collator decomposition if this column represents a string. The value here is taken from java.text.Collator.
-
default_expression_string
private java.lang.String default_expression_string
The default expression string.
-
foreign_key
private java.lang.String foreign_key
Deprecated.If this is a foreign key, the table.column that this foreign key refers to.
-
index_desc
private java.lang.String index_desc
The type of index to use on this column.
-
class_constraint
private java.lang.String class_constraint
If this is a Java Object column, this is a constraint that the object must be derived from to be added to this column. If not specified, it defaults to 'java.lang.Object'.
-
constraining_class
private java.lang.Class constraining_class
The constraining Class object itself.
-
type
public TType type
The TType object for this column.
-
-
Constructor Detail
-
DataTableColumnDef
public DataTableColumnDef()
Constructs the column definition.
-
DataTableColumnDef
public DataTableColumnDef(DataTableColumnDef column_def)
Creates a copy of the given column definition.
-
-
Method Detail
-
setName
public void setName(java.lang.String name)
-
setNotNull
public void setNotNull(boolean status)
-
setSQLType
public void setSQLType(int sql_type)
-
setDBType
public void setDBType(int db_type)
-
setSize
public void setSize(int size)
-
setScale
public void setScale(int scale)
-
setStringLocale
public void setStringLocale(java.lang.String locale_str, int strength, int decomposition)
-
setDefaultExpression
public void setDefaultExpression(Expression expression)
-
setForeignKey
public void setForeignKey(java.lang.String foreign_key)
Deprecated.
-
setIndexScheme
public void setIndexScheme(java.lang.String index_scheme)
Sets the indexing scheme for this column. Either 'InsertSearch' or 'BlindSearch'. If not set, then default to insert search.
-
setClassConstraint
public void setClassConstraint(java.lang.String class_constraint)
If this column represents a Java object, this must be a class the object is derived from to be added to this column.
-
setFromTType
public void setFromTType(TType type)
Sets this DataTableColumnDef object up from information in the TType object. This is useful when we need to create a DataTableColumnDef object to store information based on nothing more than a TType object. This comes in useful for purely functional tables.
-
initTTypeInfo
public void initTTypeInfo()
Initializes the TType information for a column. This should be called at the last part of a DataTableColumnDef setup.
-
getName
public java.lang.String getName()
-
isNotNull
public boolean isNotNull()
-
getSQLType
public int getSQLType()
-
getSQLTypeString
public java.lang.String getSQLTypeString()
Returns the type as a String.
-
getDBTypeString
public java.lang.String getDBTypeString()
Returns the type as a String.
-
classType
public java.lang.Class classType()
Returns the Class of Java object that represents this column.
-
getDBType
public int getDBType()
-
getSize
public int getSize()
-
getScale
public int getScale()
-
getLocaleString
public java.lang.String getLocaleString()
-
getStrength
public int getStrength()
-
getDecomposition
public int getDecomposition()
-
getDefaultExpression
public Expression getDefaultExpression(TransactionSystem system)
-
getDefaultExpressionString
public java.lang.String getDefaultExpressionString()
-
getForeignKey
public java.lang.String getForeignKey()
Deprecated.
-
getIndexScheme
public java.lang.String getIndexScheme()
Returns the name of the scheme we use to index this column. It will be either 'InsertSearch' or 'BlindSearch'.
-
isIndexableType
public boolean isIndexableType()
Returns true if this type of column is able to be indexed.
-
getClassConstraint
public java.lang.String getClassConstraint()
If this column represents a Java Object, this returns the name of the class the objects stored in the column must be derived from.
-
getClassConstraintAsClass
public java.lang.Class getClassConstraintAsClass()
If this column represents a Java Object, this returns the class object that is the constraining class for the column.
-
getTType
public TType getTType()
Returns the TType for this column.
-
columnDescriptionValue
public ColumnDescription columnDescriptionValue(java.lang.String column_name)
Returns this column as a ColumnDescription object and gives the column description the given name.
-
dump
public void dump(java.io.PrintStream out)
Dumps information about this object to the PrintStream.
-
compatIsUnique
boolean compatIsUnique()
-
compatIsPrimaryKey
boolean compatIsPrimaryKey()
-
sqlTypeToString
public static java.lang.String sqlTypeToString(int sql_type)
Returns a string that represents the given SQLType enumeration passed to it. For example, pass SQLTypes.BIT and it returns the string "BIT"
-
createTTypeFor
static TType createTTypeFor(int sql_type, int size, int scale, java.lang.String locale, int str_strength, int str_decomposition, java.lang.String java_class)
Returns a TType object for a column with the given type information. The type information is the sql_type, the size and the scale of the type.
-
createNumericColumn
public static DataTableColumnDef createNumericColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a numeric value.
-
createBooleanColumn
public static DataTableColumnDef createBooleanColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a boolean value.
-
createStringColumn
public static DataTableColumnDef createStringColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a string value.
-
createBinaryColumn
public static DataTableColumnDef createBinaryColumn(java.lang.String name)
Convenience helper - creates a DataTableColumnDef that holds a binary value.
-
write
void write(java.io.DataOutput out) throws java.io.IOException
Writes this column information out to a DataOutputStream.- Throws:
java.io.IOException
-
read
static DataTableColumnDef read(java.io.DataInput in) throws java.io.IOException
Reads this column from a DataInputStream.- Throws:
java.io.IOException
-
-