001package gudusoft.gsqlparser.nodes;
002
003public class TCreateTypeSqlNode  extends TParseTreeNode{
004
005    public enum ECreateTypeKind {
006        composite,   // CREATE TYPE name AS (col type, ...)
007        enumType,    // CREATE TYPE name AS ENUM ('val', ...)
008        rangeType,   // CREATE TYPE name AS RANGE (subtype = ..., ...)
009        baseType,    // CREATE TYPE name (INPUT = ..., OUTPUT = ..., ...)
010        shellType    // CREATE TYPE name (no body)
011    }
012
013    private TObjectName typeName;
014    private TColumnDefinitionList attributeList;
015    private ECreateTypeKind createTypeKind = ECreateTypeKind.composite;
016
017    public TObjectName getTypeName() {
018        return typeName;
019    }
020
021    public TColumnDefinitionList getAttributeList() {
022        return attributeList;
023    }
024
025    public ECreateTypeKind getCreateTypeKind() {
026        return createTypeKind;
027    }
028
029    public void init(Object arg1){
030        this.typeName = (TObjectName)arg1;
031    }
032
033    public void init(Object arg1, Object arg2){
034        this.typeName = (TObjectName)arg1;
035        this.attributeList = (TColumnDefinitionList)arg2;
036    }
037
038    public void init(Object arg1, Object arg2, Object arg3){
039        this.typeName = (TObjectName)arg1;
040        this.createTypeKind = (ECreateTypeKind)arg2;
041    }
042}