001package gudusoft.gsqlparser.nodes;
002
003
004import gudusoft.gsqlparser.stmt.TAlterSchemaStmt;
005
006public class TAlterSchemaSqlNode  extends TParseTreeNode {
007
008    public TAlterSchemaStmt.AlterType getAlterType() {
009        return alterType;
010    }
011
012    private TAlterSchemaStmt.AlterType alterType;
013    private TObjectName schemaName;
014
015    public TObjectName getSchemaName() {
016        if (schemaName != null){
017            return schemaName;
018        }else {
019            return schemaNameList.getObjectName(0);
020        }
021    }
022
023    private TObjectName ownerName;
024
025    public void setOwnerName(TObjectName ownerName) {
026        this.ownerName = ownerName;
027    }
028
029    public TObjectName getOwnerName() {
030        return ownerName;
031    }
032
033    private TObjectName newSchemaName;
034
035    public void setNewSchemaName(TObjectName newSchemaName) {
036        this.newSchemaName = newSchemaName;
037    }
038
039    public TObjectName getNewSchemaName() {
040
041        return newSchemaName;
042    }
043
044    private TObjectNameList schemaNameList;
045
046    public TObjectNameList getNewSchemaNameList() {
047        return newSchemaNameList;
048    }
049
050    public TObjectNameList getSchemaNameList() {
051        return schemaNameList;
052    }
053
054    private TObjectNameList newSchemaNameList;
055
056
057    public void init(Object arg1){
058        if (arg1 instanceof TObjectName){
059            schemaName = (TObjectName)arg1;
060        }else
061            schemaNameList = (TObjectNameList)arg1;
062    }
063
064    public void init(Object arg1,Object arg2){
065        alterType = (TAlterSchemaStmt.AlterType)arg1;
066        if (arg2 instanceof TObjectNameList)
067        {  // vertica
068            this.schemaNameList = (TObjectNameList)arg2;
069        }else{
070            this.schemaName = (TObjectName)arg2;
071        }
072    }
073
074    public void init(Object arg1,Object arg2,Object arg3){
075        init(arg1,arg2);
076        switch (alterType){
077            case renameTo:
078                if (arg3 instanceof TObjectNameList)
079                {  // vertica
080                    this.newSchemaNameList = (TObjectNameList)arg3;
081                }else{
082                    this.newSchemaName = (TObjectName)arg3;
083                }
084
085                break;
086            case authoriaztionTo:
087            case swapWith:
088                this.newSchemaName = (TObjectName)arg3;
089                break;
090            case ownerTo:
091                this.ownerName = (TObjectName)arg3;
092                break;
093        }
094    }
095
096
097}