001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.*;
005
006public class TCreateTablespaceStmt extends TCustomSqlStatement {
007
008    public TCreateTablespaceStmt(EDbVendor dbvendor) {
009        super(dbvendor);
010        sqlstatementtype = ESqlStatementType.sstcreateTablespace;
011    }
012
013    private TObjectName tablespaceName = null;
014
015    public TObjectName getTablespaceName() {
016        return tablespaceName;
017    }
018
019    public int doParseStatement(TCustomSqlStatement psql) {
020        TStubStmtSqlNode sqlNode;
021        TSourceToken startToken,st;
022        TSourceTokenList stList;
023
024        if (rootNode == null) return -1;
025        super.doParseStatement(psql);
026
027        switch (dbvendor){
028            case dbvdb2:
029                sqlNode = (TStubStmtSqlNode)rootNode;
030                startToken = sqlNode.getStartToken();
031                stList = startToken.container;
032                st = null;
033                boolean isReady = false;
034                for(int i=0;i<stList.size();i++){
035                    st = stList.get(i);
036                    if (st.isnonsolidtoken()) continue;
037                    if (st.tokencode == TBaseType.rrw_db2_tablespace){
038                        isReady = true;
039                        continue;
040                    }
041                    if (isReady){
042                        tablespaceName = new TNodeFactory().createObjectName(null,null,st);
043                        break;
044                    }
045                }
046                break;
047            case dbvmssql:
048
049                break;
050            default:
051                break;
052        }
053
054        return 0;
055    }
056
057
058    public void accept(TParseTreeVisitor v){
059        v.preVisit(this);
060        v.postVisit(this);
061    }
062
063    public void acceptChildren(TParseTreeVisitor v){
064        v.preVisit(this);
065        v.postVisit(this);
066    }
067
068}