001package gudusoft.gsqlparser.nodes.oracle;
002
003
004import gudusoft.gsqlparser.TSourceToken;
005import gudusoft.gsqlparser.nodes.TConstant;
006import gudusoft.gsqlparser.nodes.TParseTreeNode;
007import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
008
009
010public class TStorageItem extends TParseTreeNode {
011    private EStorageType storageType;
012    private TSizeClause sizeClause;
013    private TConstant itemValue;
014    private TSourceToken unlimitedToken;
015    private TSourceToken nullToken;
016    private EBufferPoolType bufferPoolType;
017    private EFlashCacheType flashCacheType;
018
019    public EBufferPoolType getBufferPoolType() {
020        return bufferPoolType;
021    }
022
023    public EFlashCacheType getFlashCacheType() {
024        return flashCacheType;
025    }
026
027    public TSourceToken getNullToken() {
028        return nullToken;
029    }
030
031    public TSourceToken getUnlimitedToken() {
032        return unlimitedToken;
033    }
034
035    public TConstant getItemValue() {
036        return itemValue;
037    }
038
039    public TSizeClause getSizeClause() {
040        return sizeClause;
041    }
042
043    public EStorageType getStorageType() {
044        return storageType;
045    }
046
047    public void init(Object arg1){
048        storageType = (EStorageType)arg1;
049
050    }
051
052    public void init(Object arg1,Object arg2) {
053        init(arg1);
054        switch (storageType) {
055            case stInitial:
056            case stNext:
057                sizeClause = (TSizeClause)arg2;
058                break;
059            case stMinExtents:
060                itemValue = (TConstant)arg2;
061                break;
062            case stPctIncrease:
063                itemValue = (TConstant)arg2;
064                break;
065            case stFreelists:
066                itemValue = (TConstant)arg2;
067                break;
068            case stFreelistGroups:
069                itemValue = (TConstant)arg2;
070                break;
071            case stMaxExtents:
072                if (arg2 instanceof TConstant){
073                    itemValue = (TConstant)arg2;
074                }else if (arg2 instanceof TSourceToken){
075                    unlimitedToken = (TSourceToken)arg2;
076                }
077
078                break;
079            case stMaxsize:
080                if (arg2 instanceof TSizeClause){
081                    sizeClause = (TSizeClause)arg2;
082                }else if (arg2 instanceof TSourceToken){
083                    unlimitedToken = (TSourceToken)arg2;
084                }
085                break;
086            case stOptimal:
087                if (arg2 instanceof TSizeClause){
088                    sizeClause = (TSizeClause)arg2;
089                }else if (arg2 instanceof TSourceToken){
090                    nullToken = (TSourceToken)arg2;
091                }
092                break;
093            case stBufferPool:
094                bufferPoolType = (EBufferPoolType)arg2;
095                break;
096            case stFlashCache:
097                flashCacheType = (EFlashCacheType)arg2;
098                break;
099            default:
100                break;
101        }
102    }
103
104    public void accept(TParseTreeVisitor v){
105        v.preVisit(this);
106        v.postVisit(this);
107    }
108
109    public void acceptChildren(TParseTreeVisitor v){
110        v.preVisit(this);
111        v.postVisit(this);
112    }
113
114}