001package gudusoft.gsqlparser.nodes; 002 003 004import gudusoft.gsqlparser.EDbObjectType; 005 006public class TStageLocation extends TParseTreeNode { 007 008 public enum EStageLocationType { internalUser, internalTable, internalNamed, external, location, unknown}; 009 010 private EStageLocationType stageLocationType = TStageLocation.EStageLocationType.unknown; 011 012 public EStageLocationType getStageLocationType() { 013 return stageLocationType; 014 } 015 016 private boolean isStage = true; 017 018 public void setStage(boolean stage) { 019 isStage = stage; 020 } 021 022 public boolean isStage() { 023 return isStage; 024 } 025 026 private TObjectName nameSpace; 027 private TObjectName stageName; 028 private TObjectName tableName; 029 private TObjectName externalLocation; 030 031 public void setExternalLocation(TObjectName externalLocation) { 032 this.externalLocation = externalLocation; 033 } 034 035 public TObjectName getExternalLocation() { 036 return externalLocation; 037 } 038 039 public void init(Object arg1, Object arg2,Object arg3){ 040 init(arg1,arg2); 041 switch (stageLocationType){ 042 case internalTable: 043 case internalNamed: 044 this.nameSpace = (TObjectName)arg3; 045 this.nameSpace.setDbObjectType(EDbObjectType.schema); 046 break; 047 } 048 } 049 public void init(Object arg1, Object arg2){ 050 init(arg1); 051 this.stageName = (TObjectName)arg2; 052 this.stageName.setDbObjectType(EDbObjectType.stage); 053 } 054 055 public void init(Object arg1){ 056 this.stageLocationType = (EStageLocationType)arg1; 057 } 058 059 public void setNameSpace(TObjectName nameSpace) { 060 this.nameSpace = nameSpace; 061 } 062 063 public void setStageName(TObjectName stageName) { 064 this.stageName = stageName; 065 } 066 067 public void setTableName(TObjectName tableName) { 068 this.tableName = tableName; 069 } 070 071 public void setPath(TPathSqlNode path) { 072 this.path = path; 073 } 074 075 public TObjectName getNameSpace() { 076 return nameSpace; 077 } 078 079 public TObjectName getStageName() { 080 return stageName; 081 } 082 083 public TObjectName getTableName() { 084 return tableName; 085 } 086 087 public TPathSqlNode getPath() { 088 return path; 089 } 090 091 private TPathSqlNode path; 092 093 public void accept(TParseTreeVisitor v){ 094 v.preVisit(this); 095 v.postVisit(this); 096 } 097 public void acceptChildren(TParseTreeVisitor v){ 098 v.preVisit(this); 099 v.postVisit(this); 100 } 101}