001package gudusoft.gsqlparser.nodes;
002
003import gudusoft.gsqlparser.TSourceToken;
004import gudusoft.gsqlparser.stmt.TCopyStmt;
005
006public class TCopySqlNode extends TParseTreeNode {
007
008    public void setCopyType(TCopyStmt.ECopyType copyType) {
009        this.copyType = copyType;
010    }
011
012    public TCopyStmt.ECopyType getCopyType() {
013        return copyType;
014    }
015
016    private TCopyStmt.ECopyType copyType;
017
018    private TObjectName tablename;
019    private TObjectNameList columnList;
020    private TSourceToken filename;
021    private TSelectSqlNode subQueryNode;
022    private TWhereClause whereClause;
023    private TAuthorizationClause authorizationClause;
024
025    public void setAuthorizationClause(TAuthorizationClause authorizationClause) {
026        this.authorizationClause = authorizationClause;
027    }
028
029    public TAuthorizationClause getAuthorizationClause() {
030        return authorizationClause;
031    }
032
033    public void setWhereClause(TWhereClause whereClause) {
034        this.whereClause = whereClause;
035    }
036
037    public void setColumnList(TObjectNameList columnList) {
038        this.columnList = columnList;
039    }
040
041    public TObjectName getTablename() {
042        return tablename;
043    }
044
045    public TObjectNameList getColumnList() {
046        return columnList;
047    }
048
049    public TSourceToken getFilename() {
050        return filename;
051    }
052
053    public TSelectSqlNode getSubQueryNode() {
054        return subQueryNode;
055    }
056
057    public TWhereClause getWhereClause() {
058        return whereClause;
059    }
060
061    public void init(Object arg1, Object arg2){
062        if (arg1 instanceof TObjectName){
063            tablename = (TObjectName)arg1;
064        }else if (arg1 instanceof TSelectSqlNode){
065            subQueryNode = (TSelectSqlNode)arg1;
066        }
067
068        filename = (TSourceToken)arg2;
069    }
070
071    public void init(Object arg1, Object arg2,Object arg3){
072        copyType = (TCopyStmt.ECopyType)arg1;
073        switch (copyType){
074            case from:
075                tablename = (TObjectName)arg2;
076                filename = (TSourceToken)arg3;
077                break;
078        }
079    }
080}