001package gudusoft.gsqlparser.nodes;
002
003
004import javax.naming.ldap.PagedResultsControl;
005import java.util.ArrayList;
006
007public class TExceptReplaceClause extends TParseTreeNode {
008
009    public static final int EXCEPT_CLAUSE = 1;
010    public static final int REPLACE_CLAUSE = 2;
011    public static final int EXCEPT_AND_REPLACE_CLAUSE = 3;
012    public static final int EXCEPT_AND_REPLACE_UNKNOWN = 0;
013
014    private int except_replace_clause = EXCEPT_AND_REPLACE_UNKNOWN;
015
016    private TObjectNameList columnList;
017    private ArrayList<TReplaceExprAsIdentifier> exprAsIdentifiers;
018
019    public TObjectNameList getColumnList() {
020        return columnList;
021    }
022
023    public ArrayList<TReplaceExprAsIdentifier> getExprAsIdentifiers() {
024        return exprAsIdentifiers;
025    }
026
027    public void init(Object arg1, Object arg2){
028        columnList = (TObjectNameList)arg1;
029        exprAsIdentifiers = (ArrayList<TReplaceExprAsIdentifier>)arg2;
030        if (columnList == null){
031            except_replace_clause = REPLACE_CLAUSE;
032        }else{
033            except_replace_clause = EXCEPT_AND_REPLACE_CLAUSE;
034        }
035    }
036
037    public void init(Object arg1){
038        columnList = (TObjectNameList)arg1;
039        except_replace_clause = EXCEPT_CLAUSE;
040    }
041
042    public void accept(TParseTreeVisitor v){
043        v.preVisit(this);
044        v.postVisit(this);
045    }
046
047    public void acceptChildren(TParseTreeVisitor v){
048        v.preVisit(this);
049        if ((except_replace_clause == EXCEPT_CLAUSE)||(except_replace_clause == EXCEPT_AND_REPLACE_CLAUSE)){
050            columnList.acceptChildren(v);
051        }
052        if ((except_replace_clause == REPLACE_CLAUSE)||(except_replace_clause == EXCEPT_AND_REPLACE_CLAUSE)){
053            for(TReplaceExprAsIdentifier r:exprAsIdentifiers){
054                r.acceptChildren(v);
055            }
056        }
057        v.postVisit(this);
058    }
059}