001package gudusoft.gsqlparser.stmt;
002
003
004import gudusoft.gsqlparser.*;
005import gudusoft.gsqlparser.nodes.TDescribeSqlNode;
006import gudusoft.gsqlparser.nodes.TObjectName;
007import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
008
009public class TDescribeStmt extends TCustomSqlStatement {
010
011    private TObjectName dbObjectName;
012    private EDbObjectType dbObjectType;
013
014    public TObjectName getDbObjectName() {
015        return dbObjectName;
016    }
017
018    public EDbObjectType getDbObjectType() {
019        return dbObjectType;
020    }
021
022    public TObjectName getColumnName() {
023        return describeSqlNode.getColumnName();
024    }
025
026    public TSourceToken getDescToken() {
027        return describeSqlNode.getDescToken();
028    }
029
030    public TObjectName getTableName() {
031        return describeSqlNode.getTableName();
032    }
033
034    public TDescribeStmt(EDbVendor dbvendor) {
035        super(dbvendor);
036        sqlstatementtype = ESqlStatementType.sstdescribe;
037    }
038
039    TDescribeSqlNode describeSqlNode;
040
041    public int doParseStatement(TCustomSqlStatement psql) {
042        if (rootNode == null) return -1;
043        super.doParseStatement(psql);
044        describeSqlNode = (TDescribeSqlNode)rootNode;
045        dbObjectName = describeSqlNode.getDbObjectName();
046        dbObjectType = describeSqlNode.getDbObjectType();
047
048        return 0;
049    }
050
051    public void accept(TParseTreeVisitor v){
052        v.preVisit(this);
053        v.postVisit(this);
054    }
055
056    public void acceptChildren(TParseTreeVisitor v){
057        v.preVisit(this);
058        v.postVisit(this);
059    }
060
061}