001package gudusoft.gsqlparser.stmt; 002/* 003 * Date: 13-1-23 004 */ 005 006import gudusoft.gsqlparser.*; 007import gudusoft.gsqlparser.nodes.TCreateSynonymSqlNode; 008import gudusoft.gsqlparser.nodes.TObjectName; 009import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 010 011public class TCreateSynonymStmt extends TCustomSqlStatement { 012 013 public TCreateSynonymStmt(EDbVendor dbvendor) { 014 super(dbvendor); 015 sqlstatementtype = ESqlStatementType.sstcreatesynonym; 016 } 017 018 private TObjectName synonymName = null; 019 private TObjectName forName = null; 020 021 public TObjectName getForName() { 022 return forName; 023 } 024 025 public TObjectName getSynonymName() { 026 return synonymName; 027 } 028 029 public int doParseStatement(TCustomSqlStatement psql) { 030 if (rootNode == null) return -1; 031 super.doParseStatement(psql); 032 TCreateSynonymSqlNode node = (TCreateSynonymSqlNode)rootNode; 033 this.synonymName = node.getSynonymName(); 034 this.synonymName.setDbObjectType(EDbObjectType.synonym); 035 if (getSqlEnv().getDefaultCatalogName() != null){ 036 if (synonymName.getDatabaseToken() == null){ 037 synonymName.setDatabaseToken(new TSourceToken(getSqlEnv().getDefaultCatalogName())); 038 } 039 } 040 this.forName = node.getForName(); 041 this.forName.setDbObjectType(EDbObjectType.synonym); 042 this.isPublic = node.isPublic(); 043 044 return 0; 045 } 046 047 private boolean isPublic = false; 048 049 public boolean isPublic() { 050 return isPublic; 051 } 052 053 public void accept(TParseTreeVisitor v){ 054 v.preVisit(this); 055 v.postVisit(this); 056 } 057 058 public void acceptChildren(TParseTreeVisitor v){ 059 v.preVisit(this); 060 v.postVisit(this); 061 } 062 063 public void setSynonymName(TObjectName synonymName) { 064 this.synonymName = synonymName; 065 } 066 067 public void setForName(TObjectName forName) { 068 this.forName = forName; 069 } 070 071 public void setPublic(boolean isPublic) { 072 this.isPublic = isPublic; 073 } 074}