001package gudusoft.gsqlparser.nodes;
002/*
003 * Date: 13-3-26
004 */
005
006import gudusoft.gsqlparser.EDbObjectType;
007import gudusoft.gsqlparser.TSourceToken;
008
009public class TDescribeSqlNode extends TParseTreeNode {
010
011    private TObjectName databaseName;
012
013    public TObjectName getDatabaseName() {
014        return databaseName;
015    }
016
017    private  TObjectName tableName;
018    private TObjectName columnName;
019    private TSourceToken descToken;
020    private TObjectName dbObjectName;
021    private EDbObjectType dbObjectType;
022
023    public TObjectName getDbObjectName() {
024        return dbObjectName;
025    }
026
027    public EDbObjectType getDbObjectType() {
028        return dbObjectType;
029    }
030
031    public TObjectName getColumnName() {
032        return columnName;
033    }
034
035    public TSourceToken getDescToken() {
036        return descToken;
037    }
038
039    public TObjectName getTableName() {
040        return tableName;
041    }
042
043//    public void init(Object arg1, Object arg2){
044//
045//        descToken = (TSourceToken)arg1;
046//        tableName = (TObjectName)arg2;
047//    }
048//
049//    public void init(Object arg1, Object arg2, Object arg3){
050//        init(arg1,arg2);
051//        columnName = (TObjectName)arg3;
052//    }
053
054
055    public void setTableName(TObjectName tableName) {
056        this.tableName = tableName;
057    }
058
059    public void setColumnName(TObjectName columnName) {
060        this.columnName = columnName;
061    }
062
063    public void setDescToken(TSourceToken descToken) {
064        this.descToken = descToken;
065    }
066
067    public  void  init(Object arg1,Object arg2){
068        dbObjectType = (EDbObjectType)arg1;
069
070        switch (dbObjectType){
071            case table:
072                dbObjectName = (TObjectName)arg2;
073                tableName = dbObjectName;
074                tableName.setDbObjectType(dbObjectType);
075                break;
076            case column:
077                dbObjectName = (TObjectName)arg2;
078                columnName = dbObjectName;
079                break;
080            case database:
081                dbObjectName = (TObjectName)arg2;
082                databaseName = dbObjectName;
083                break;
084            case query:
085                queryNode = (TSelectSqlNode) arg2;
086                break;
087            default:
088                dbObjectName = (TObjectName)arg2;
089                break;
090        }
091    }
092
093    private TSelectSqlNode queryNode;
094
095    public TSelectSqlNode getQueryNode() {
096        return queryNode;
097    }
098}