001package gudusoft.gsqlparser.stmt.redshift;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.TDummy;
008import gudusoft.gsqlparser.nodes.TObjectName;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010
011
012public class TRedshiftComment extends TCustomSqlStatement {
013
014    private EDbObjectType dbObjectType;
015    private TObjectName objectName;
016    private TObjectName onObjectName;
017    private String commentText;
018
019    public EDbObjectType getDbObjectType() {
020        return dbObjectType;
021    }
022
023    public TObjectName getObjectName() {
024        return objectName;
025    }
026
027    public TObjectName getOnObjectName() {
028        return onObjectName;
029    }
030
031    public String getCommentText() {
032        return commentText;
033    }
034
035    public TRedshiftComment(EDbVendor dbvendor) {
036        super(dbvendor);
037        sqlstatementtype = ESqlStatementType.sstredshiftComment;
038    }
039
040    public int doParseStatement(TCustomSqlStatement psql) {
041        if (rootNode == null) return -1;
042        super.doParseStatement(psql);
043        TDummy dummy = (TDummy)rootNode;
044        objectName = (TObjectName)dummy.node1;
045        commentText = dummy.st1.toString();
046        switch (dummy.int1){
047            case 1:{
048                dbObjectType = EDbObjectType.column;
049                break;
050            }
051            case 2:{
052                dbObjectType = EDbObjectType.table;
053                break;
054            }
055            case 3:{
056                dbObjectType = EDbObjectType.view;
057                break;
058            }
059            case 4:{
060                dbObjectType = EDbObjectType.database;
061                break;
062            }
063            case 5:{
064                dbObjectType = EDbObjectType.constraint;
065                onObjectName = (TObjectName)dummy.node2;
066                break;
067            }
068        }
069
070        return 0;
071    }
072
073    public void accept(TParseTreeVisitor v){
074        v.preVisit(this);
075        v.postVisit(this);
076    }
077
078    public void acceptChildren(TParseTreeVisitor v){
079        v.preVisit(this);
080        v.postVisit(this);
081    }
082
083    public void setDbObjectType(EDbObjectType dbObjectType) {
084        this.dbObjectType = dbObjectType;
085    }
086
087    public void setObjectName(TObjectName objectName) {
088        this.objectName = objectName;
089    }
090
091    public void setOnObjectName(TObjectName onObjectName) {
092        this.onObjectName = onObjectName;
093    }
094
095    public void setCommentText(String commentText) {
096        this.commentText = commentText;
097    }
098}