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