001package gudusoft.gsqlparser.stmt.hive;
002/*
003 * Date: 13-7-30
004 */
005
006import gudusoft.gsqlparser.EDbVendor;
007import gudusoft.gsqlparser.ESqlStatementType;
008import gudusoft.gsqlparser.TCustomSqlStatement;
009import gudusoft.gsqlparser.nodes.TFromTable;
010import gudusoft.gsqlparser.nodes.TObjectName;
011import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
012import gudusoft.gsqlparser.nodes.TTable;
013import gudusoft.gsqlparser.nodes.hive.THiveImportSqlNode;
014
015public class THiveImportTable extends TCustomSqlStatement {
016
017    private boolean external = false;
018    private TTable table;
019    private TObjectName path;
020    private TObjectName tableLocation;
021
022    public THiveImportTable(EDbVendor dbvendor) {
023        super(dbvendor);
024        sqlstatementtype = ESqlStatementType.ssthiveImportTable;
025    }
026
027    public boolean isExternal() {
028        return external;
029    }
030
031    public TObjectName getPath() {
032        return path;
033    }
034
035    public TTable getTable() {
036        return table;
037    }
038
039    public TObjectName getTableLocation() {
040        return tableLocation;
041    }
042
043    public int doParseStatement(TCustomSqlStatement psql) {
044        if (rootNode == null) return -1;
045        super.doParseStatement(psql);
046        THiveImportSqlNode node = (THiveImportSqlNode)rootNode;
047        external = node.isExternal();
048        path = node.getPath();
049        tableLocation = node.getTableLocation();
050        if (node.getFromTable() != null){
051            table = this.analyzeFromTable(node.getFromTable(),true);
052        }
053
054        return 0;
055    }
056
057    public void accept(TParseTreeVisitor v){
058        v.preVisit(this);
059        v.postVisit(this);
060    }
061
062    public void acceptChildren(TParseTreeVisitor v){
063        v.preVisit(this);
064        v.postVisit(this);
065    }
066
067    public void setExternal(boolean external) {
068        this.external = external;
069    }
070
071    public void setTable(TTable table) {
072        this.table = table;
073    }
074
075    public void setPath(TObjectName path) {
076        this.path = path;
077    }
078
079    public void setTableLocation(TObjectName tableLocation) {
080        this.tableLocation = tableLocation;
081    }
082}