001package gudusoft.gsqlparser.sqlenv;
002
003
004import gudusoft.gsqlparser.nodes.TTypeName;
005
006/**
007 * table column
008 */
009public class TSQLColumn extends TSQLObject {
010
011    private TSQLTable sqlTable;
012
013    /**
014     * table include this column
015     * @return table
016     */
017    public TSQLTable getSqlTable() {
018        return sqlTable;
019    }
020
021    /**
022     * create a new column and add to the table
023     *
024     * @param sqlTable table this column belongs to
025     * @param columnName column name
026     */
027    public TSQLColumn(TSQLTable sqlTable,String columnName){
028        super(sqlTable.getSqlEnv(),columnName,ESQLDataObjectType.dotColumn);
029        this.sqlTable = sqlTable;
030    }
031
032    public TSQLColumn(TSQLTable sqlTable, String columnName, TTypeName dataType){
033        super(sqlTable.getSqlEnv(),columnName,ESQLDataObjectType.dotColumn);
034        this.sqlTable = sqlTable;
035        if (dataType != null){
036            this.columnDataType = dataType.clone();
037        }
038    }
039
040    private TTypeName columnDataType;
041
042    public TTypeName getColumnDataType() {
043        return columnDataType;
044    }
045
046
047    public void setColumnName(String columnName){
048        this.name = columnName;
049    }
050
051    @Override
052    public String toString(){
053
054        String ret = "Column name: "+ name;
055        if (columnDataType != null){
056            ret = ret +", data type: " + columnDataType.getDataType().toString();
057        }else{
058            ret = ret +", data type: N/A";
059        }
060        return ret;
061    }
062
063}