001package gudusoft.gsqlparser.nodes.teradata;
002
003import gudusoft.gsqlparser.nodes.TConstraint;
004import gudusoft.gsqlparser.nodes.TDatatypeAttribute;
005import gudusoft.gsqlparser.nodes.TParseTreeNode;
006import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
007
008public class TDataDefinition extends TParseTreeNode {
009    public enum EDataDefinitionType  {columnConstraint,dataAttribute,columnStorage};
010
011    private EDataDefinitionType dataDefinitionType;
012
013    private TConstraint columnConstraint;
014    private TDatatypeAttribute datatypeAttribute;
015    private TColumnStorage columnStorage;
016
017    public EDataDefinitionType getDataDefinitionType() {
018        return dataDefinitionType;
019    }
020
021    public TConstraint getColumnConstraint() {
022        return columnConstraint;
023    }
024
025    public TDatatypeAttribute getDatatypeAttribute() {
026        return datatypeAttribute;
027    }
028
029    public TColumnStorage getColumnStorage() {
030        return columnStorage;
031    }
032
033    public void init(Object arg1, Object arg2){
034        dataDefinitionType = (EDataDefinitionType)arg1;
035        switch (dataDefinitionType){
036            case columnConstraint:
037                columnConstraint = (TConstraint)arg2;
038                break;
039            case dataAttribute:
040                datatypeAttribute = (TDatatypeAttribute)arg2;
041                break;
042            case columnStorage:
043                columnStorage = (TColumnStorage)arg2;
044                break;
045        }
046    }
047
048    public void accept(TParseTreeVisitor v){
049        v.preVisit(this);
050        v.postVisit(this);
051    }
052
053    public void acceptChildren(TParseTreeVisitor v){
054        v.preVisit(this);
055        v.postVisit(this);
056    }
057
058}