001package gudusoft.gsqlparser.stmt;
002
003
004import gudusoft.gsqlparser.EDbObjectType;
005import gudusoft.gsqlparser.EDbVendor;
006import gudusoft.gsqlparser.ESqlStatementType;
007import gudusoft.gsqlparser.TCustomSqlStatement;
008import gudusoft.gsqlparser.nodes.TObjectName;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.TTypeName;
011import gudusoft.gsqlparser.nodes.mssql.TMssqlCreateTypeSqlNode;
012
013public class TMssqlCreateType  extends TCustomSqlStatement {
014
015    private TObjectName type_name;
016    private TTypeName base_type;
017    private TObjectName externalName;
018    private boolean isNull = false;
019    private boolean isNotNull = false;
020
021    public void setNull(boolean isNull) {
022        this.isNull = isNull;
023    }
024
025    public void setNotNull(boolean isNotNull) {
026        this.isNotNull = isNotNull;
027    }
028
029    public boolean isNull() {
030
031        return isNull;
032    }
033
034    public boolean isNotNull() {
035        return isNotNull;
036    }
037
038    public void setType_name(TObjectName type_name) {
039        this.type_name = type_name;
040    }
041
042    public void setBase_type(TTypeName base_type) {
043        this.base_type = base_type;
044    }
045
046    public void setExternalName(TObjectName externalName) {
047        this.externalName = externalName;
048    }
049
050    public TObjectName getType_name() {
051
052        return type_name;
053    }
054
055    public TTypeName getBase_type() {
056        return base_type;
057    }
058
059    public TObjectName getExternalName() {
060        return externalName;
061    }
062
063    public TMssqlCreateType (EDbVendor dbvendor){
064        super(dbvendor);
065        sqlstatementtype = ESqlStatementType.sstmssqlcreatetype ;
066    }
067
068    public int doParseStatement(TCustomSqlStatement psql) {
069        if (rootNode == null) return -1;
070        TMssqlCreateTypeSqlNode createTypeSqlNode = (TMssqlCreateTypeSqlNode)rootNode;
071        type_name = createTypeSqlNode.getType_name();
072       // type_name.setObjectType(TObjectName.ttobjTypeName);
073        type_name.setDbObjectType(EDbObjectType.user_defined_type);
074        base_type = createTypeSqlNode.getBase_type();
075        externalName = createTypeSqlNode.getExternalName();
076        isNull = createTypeSqlNode.isNull();
077        isNotNull = createTypeSqlNode.isNotNull();
078        return 0;
079    }
080
081    public void accept(TParseTreeVisitor v){
082        v.preVisit(this);
083        v.postVisit(this);
084    }
085
086    public void acceptChildren(TParseTreeVisitor v){
087        v.preVisit(this);
088        v.postVisit(this);
089    }
090
091}