001package gudusoft.gsqlparser.nodes;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.EDeclareType;
005
006/**
007 * Teradata handler for clause
008 */
009public class THandlerForCondition extends TParseTreeNode{
010    public enum EHandlerForType {sqlstate, conditionName, SQLEXCEPTION, SQLWARNING,NOTFOUND};
011    private EHandlerForType handlerForType;
012
013    public EHandlerForType getHandlerForType() {
014        return handlerForType;
015    }
016
017    public void init(Object arg1){
018        handlerForType = (EHandlerForType)arg1;
019    }
020
021    private TConstant sqlstateCode;
022
023    public TConstant getSqlstateCode() {
024        return sqlstateCode;
025    }
026
027    public TObjectName getConditionName() {
028        return conditionName;
029    }
030
031    private TObjectName conditionName;
032
033    public void init(Object arg1, Object arg2){
034        init(arg1);
035        switch (handlerForType){
036            case sqlstate:
037                sqlstateCode = (TConstant) arg2;
038                break;
039            case conditionName:
040                conditionName = (TObjectName) arg2;
041                conditionName.setDbObjectType(EDbObjectType.condition_name);
042                break;
043        }
044    }
045
046    public void accept(TParseTreeVisitor v){
047        v.preVisit(this);
048        v.postVisit(this);
049    }
050
051    public void acceptChildren(TParseTreeVisitor v){
052        v.preVisit(this);
053        v.postVisit(this);
054    }
055}