001package gudusoft.gsqlparser.nodes; 002/* 003 * Date: 13-3-26 004 */ 005 006import gudusoft.gsqlparser.EDbObjectType; 007import gudusoft.gsqlparser.TSourceToken; 008 009public class TDescribeSqlNode extends TParseTreeNode { 010 011 private TObjectName databaseName; 012 013 public TObjectName getDatabaseName() { 014 return databaseName; 015 } 016 017 private TObjectName tableName; 018 private TObjectName columnName; 019 private TSourceToken descToken; 020 private TObjectName dbObjectName; 021 private EDbObjectType dbObjectType; 022 023 public TObjectName getDbObjectName() { 024 return dbObjectName; 025 } 026 027 public EDbObjectType getDbObjectType() { 028 return dbObjectType; 029 } 030 031 public TObjectName getColumnName() { 032 return columnName; 033 } 034 035 public TSourceToken getDescToken() { 036 return descToken; 037 } 038 039 public TObjectName getTableName() { 040 return tableName; 041 } 042 043// public void init(Object arg1, Object arg2){ 044// 045// descToken = (TSourceToken)arg1; 046// tableName = (TObjectName)arg2; 047// } 048// 049// public void init(Object arg1, Object arg2, Object arg3){ 050// init(arg1,arg2); 051// columnName = (TObjectName)arg3; 052// } 053 054 055 public void setTableName(TObjectName tableName) { 056 this.tableName = tableName; 057 } 058 059 public void setColumnName(TObjectName columnName) { 060 this.columnName = columnName; 061 } 062 063 public void setDescToken(TSourceToken descToken) { 064 this.descToken = descToken; 065 } 066 067 private TSourceToken asJsonToken; 068 069 /** 070 * The {@code JSON} token of a trailing {@code AS JSON} clause 071 * (Databricks / Spark {@code DESCRIBE TABLE EXTENDED t AS JSON}). 072 * 073 * @return the {@code JSON} token, or {@code null} when the clause is absent 074 */ 075 public TSourceToken getAsJsonToken() { 076 return asJsonToken; 077 } 078 079 public void setAsJsonToken(TSourceToken asJsonToken) { 080 this.asJsonToken = asJsonToken; 081 } 082 083 public void init(Object arg1,Object arg2){ 084 dbObjectType = (EDbObjectType)arg1; 085 086 switch (dbObjectType){ 087 case table: 088 dbObjectName = (TObjectName)arg2; 089 tableName = dbObjectName; 090 tableName.setDbObjectType(dbObjectType); 091 break; 092 case column: 093 dbObjectName = (TObjectName)arg2; 094 columnName = dbObjectName; 095 break; 096 case database: 097 dbObjectName = (TObjectName)arg2; 098 databaseName = dbObjectName; 099 break; 100 case query: 101 queryNode = (TSelectSqlNode) arg2; 102 break; 103 default: 104 dbObjectName = (TObjectName)arg2; 105 break; 106 } 107 } 108 109 private TSelectSqlNode queryNode; 110 111 public TSelectSqlNode getQueryNode() { 112 return queryNode; 113 } 114}