001package gudusoft.gsqlparser.nodes; 002 003 004import gudusoft.gsqlparser.TBaseType; 005import gudusoft.gsqlparser.stmt.TCreateSchemaSqlStatement; 006 007public class TCreateSchemaSqlNode extends TParseTreeNode { 008 public enum ESchemaMode {nameOnly, nameWithAuthor,authorOnly,externalSchema}; 009 010 private TObjectName sourceDatabase; 011 private TObjectName sourceSchema; 012 013 public TObjectName getSourceDatabase() { 014 return sourceDatabase; 015 } 016 017 public TObjectName getSourceSchema() { 018 return sourceSchema; 019 } 020 021 public void setDatabasebyDummy(TDummy dummy){ 022 if (dummy == null) return; 023 sourceDatabase = (TObjectName)dummy.node1; 024 if (dummy.node2 != null){ 025 sourceSchema = (TObjectName)dummy.node2; 026 } 027 } 028 029 030 public void setFromSourceByDummy(TDummy dummy){ 031 switch (dummy.int1){ 032 case 1: 033 this.fromSource = TCreateSchemaSqlStatement.EFromSource.dataCatalog; 034 break; 035 case 2: 036 this.fromSource = TCreateSchemaSqlStatement.EFromSource.hiveMetestore; 037 break; 038 case 3: 039 this.fromSource = TCreateSchemaSqlStatement.EFromSource.postgres; 040 break; 041 case 4: 042 this.fromSource = TCreateSchemaSqlStatement.EFromSource.mysql; 043 break; 044 case 5: 045 this.fromSource = TCreateSchemaSqlStatement.EFromSource.kinesis; 046 break; 047 case 6: 048 this.fromSource = TCreateSchemaSqlStatement.EFromSource.redshift; 049 break; 050 } 051 } 052 053 public TCreateSchemaSqlStatement.EFromSource getFromSource() { 054 return fromSource; 055 } 056 057 private TCreateSchemaSqlStatement.EFromSource fromSource; 058 059 private ESchemaMode schemaMode = ESchemaMode.nameOnly; 060 061 private boolean externalSchema; 062 063 public boolean isExternalSchema() { 064 return externalSchema; 065 } 066 067 private TObjectName schemaName = null; 068 private TObjectName ownerName; 069 private TStatementListSqlNode statementListSqlNode; 070 071 public TStatementListSqlNode getStatementListSqlNode() { 072 return statementListSqlNode; 073 } 074 075 public void setSchemaNameClause(TDummy dummy){ 076 schemaName = (TObjectName)dummy.node1; 077 ownerName = (TObjectName)dummy.node2; 078 } 079 080 public TObjectName getOwnerName() { 081 return ownerName; 082 } 083 084 public void init(Object arg1) 085 { 086 statementListSqlNode = (TStatementListSqlNode)arg1; 087 } 088 089 public void init(Object arg1,Object arg2){ 090 schemaMode = (ESchemaMode)arg1; 091 switch (schemaMode){ 092 case nameOnly: 093 case nameWithAuthor: 094 schemaName = (TObjectName)arg2; 095 break; 096 case authorOnly: 097 ownerName = (TObjectName)arg2; 098 break; 099 case externalSchema: 100 schemaName = (TObjectName)arg2; 101 externalSchema = true; 102 break; 103 } 104 } 105 106 public void init(Object arg1,Object arg2,Object arg3){ 107 init(arg1,arg2); 108 switch (schemaMode){ 109 case nameWithAuthor: 110 ownerName = (TObjectName)arg3; 111 break; 112 } 113 } 114 115 public TObjectName getSchemaName() { 116 return schemaName; 117 } 118 119}