001package gudusoft.gsqlparser.stmt.mssql;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
005import gudusoft.gsqlparser.nodes.TExpression;
006import gudusoft.gsqlparser.nodes.TExpressionList;
007import gudusoft.gsqlparser.nodes.mssql.TMssqlRaiserrorSqlNode;
008
009public class TMssqlRaiserror extends TCustomSqlStatement {
010     public TMssqlRaiserror (EDbVendor dbvendor){
011        super(dbvendor);
012        sqlstatementtype = ESqlStatementType.sstraiserror ;
013        }
014
015    void buildsql() {
016    }
017
018    void clear() {
019    }
020
021    String getasprettytext() {
022        return "";
023    }
024
025    void iterate(TVisitorAbs pvisitor) {
026    }
027
028    private TExpression messageText = null;
029    private TExpression severity = null;
030    private TExpression state = null;
031
032    public TExpressionList getArgs() {
033        if(args == null){
034            this.args = new TExpressionList();
035        }
036        return args;
037    }
038
039    public TExpression getMessageText() {
040        return messageText;
041    }
042
043    public TExpression getSeverity() {
044        return severity;
045    }
046
047    public TExpression getState() {
048        return state;
049    }
050
051    private TExpressionList args = null;
052
053    public int doParseStatement(TCustomSqlStatement psql) {
054        if (rootNode == null) return -1;
055        TMssqlRaiserrorSqlNode node = (TMssqlRaiserrorSqlNode)rootNode;
056        super.doParseStatement(psql);
057
058        if (node.getMsgs() != null){
059            messageText = node.getMsgs().getExpression(0);
060            if (node.getMsgs().size() > 2){
061                this.severity = node.getMsgs().getExpression(1);
062                this.state = node.getMsgs().getExpression(2);
063            }
064
065            if (node.getMsgs().size() > 3){
066                for(int i=3; i < node.getMsgs().size(); i++){
067                 this.getArgs().addExpression(node.getMsgs().getExpression(i));   
068                }
069            }
070
071        }
072
073       return 0;
074    }
075
076    public void accept(TParseTreeVisitor v){
077        v.preVisit(this);
078        v.postVisit(this);
079    }
080
081    public void acceptChildren(TParseTreeVisitor v){
082        v.preVisit(this);
083        v.postVisit(this);
084    }
085
086    public void setMessageText(TExpression messageText) {
087        this.messageText = messageText;
088    }
089
090    public void setSeverity(TExpression severity) {
091        this.severity = severity;
092    }
093
094    public void setState(TExpression state) {
095        this.state = state;
096    }
097
098    public void setArgs(TExpressionList args) {
099        this.args = args;
100    }
101}