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}