001package gudusoft.gsqlparser.stmt.mdx;
002/*
003 * Date: 11-12-29
004 */
005
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.EDbVendor;
008import gudusoft.gsqlparser.ESqlStatementType;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.mdx.TMdxCreateSubCubeNode;
011import gudusoft.gsqlparser.nodes.mdx.TMdxIdentifierNode;
012
013public class TMdxCreateSubCube extends TCustomSqlStatement {
014
015    private TMdxCreateSubCubeNode createSubCubeNode;
016    private TMdxSelect subQuery;
017
018    public TMdxCreateSubCube(EDbVendor dbvendor) {
019        super(dbvendor);
020        sqlstatementtype = ESqlStatementType.sstmdxcreatesubcube;
021    }
022    public int doParseStatement(TCustomSqlStatement psql) {
023        if (rootNode == null) return -1;
024        super.doParseStatement(psql);
025
026        createSubCubeNode = (TMdxCreateSubCubeNode)rootNode;
027        subQuery = new TMdxSelect(EDbVendor.dbvmdx);
028        subQuery.rootNode = createSubCubeNode.getSelectNode();
029        subQuery.doParseStatement(this);
030
031        return 0;
032
033    }
034
035    public TMdxIdentifierNode getCubeName(){
036        return createSubCubeNode.getCubeName();
037    }
038
039    public TMdxSelect getSubQuery(){
040        return subQuery;
041    }
042
043
044    public void accept(TParseTreeVisitor v){
045        v.preVisit(this);
046
047        v.postVisit(this);
048    }
049
050    public void acceptChildren(TParseTreeVisitor v){
051        v.preVisit(this);
052        subQuery.acceptChildren(v);
053        v.postVisit(this);
054    }
055
056}