001package gudusoft.gsqlparser.nodes.snowflake;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.ETableKind;
005import gudusoft.gsqlparser.nodes.TCreateTableOption;
006import gudusoft.gsqlparser.nodes.TDummy;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TParseTreeNode;
009
010import java.util.ArrayList;
011
012public class TCreateStageSqlNode extends TParseTreeNode {
013
014    private TObjectName stageName;
015    private TObjectName nameSpace;
016    private ArrayList<TCreateTableOption> tableOptions;
017    private ETableKind stageKind = ETableKind.etkBase;
018
019    public void setTableOptions(ArrayList<TCreateTableOption> tableOptions) {
020        this.tableOptions = tableOptions;
021    }
022
023    public ArrayList<TCreateTableOption> getTableOptions() {
024        return tableOptions;
025    }
026
027
028
029    public TObjectName getStageName() {
030        return stageName;
031    }
032
033    public TObjectName getNameSpace() {
034        return nameSpace;
035    }
036
037    public void setNameSpace(TObjectName nameSpace) {
038        this.nameSpace = nameSpace;
039        //nameSpace.setDbObjectType(EDbObjectType.schema);
040    }
041    public void init(Object arg1){
042        stageName = (TObjectName)arg1;
043       // stageName.setDbObjectType(EDbObjectType.stage);
044    }
045
046//    public void init(Object arg1, Object arg2){
047//        init(arg1);
048//        nameSpace = (TObjectName)arg2;
049//        nameSpace.setDbObjectType(EDbObjectType.schema);
050//    }
051
052    /**
053     * Set the stage kind (TEMPORARY, TEMP, etc.) from the parsed TDummy node
054     * @param node The TDummy node containing the table kind value in int1
055     */
056    public void setStageKind(TDummy node) {
057        if (node == null) return;
058        int kindValue = node.int1;
059        for (ETableKind kind : ETableKind.values()) {
060            if (kind.getValue() == kindValue) {
061                this.stageKind = kind;
062                break;
063            }
064        }
065    }
066
067    /**
068     * Get the stage kind
069     * @return The stage kind (etkTemporary, etkTemp, or etkBase for permanent stages)
070     */
071    public ETableKind getStageKind() {
072        return stageKind;
073    }
074
075}