001package gudusoft.gsqlparser.nodes;
002
003import gudusoft.gsqlparser.TSourceToken;
004
005/**
006 * property of character data type, such as character set name, case specific.
007 * used in Teradata.
008 *
009 */
010public class TCharacterDatatypeProperty extends TParseTreeNode{
011    public static final int CASESPECIFIC_UNKNOWN = 1;
012    public static final int CASESPECIFIC = 2;
013    public static final int NOT_CASESPECIFIC = 3;
014    private String characterSetName;
015    private int  caseSpecific = CASESPECIFIC_UNKNOWN;
016
017    public String getCharacterSetName() {
018        return characterSetName;
019    }
020
021    public int getCaseSpecific() {
022        return caseSpecific;
023    }
024
025    public void init(Object arg1){
026        this.characterSetName = ((TSourceToken)arg1).toString();
027    }
028
029    public void setCaseSpecific(TDummy caseSpecific) {
030        if (caseSpecific == null) return;
031        
032        TSourceToken caseSpecificToken = caseSpecific.getStartToken();
033        if (caseSpecificToken.toString().equalsIgnoreCase("NOT")) {
034            this.caseSpecific = NOT_CASESPECIFIC;
035        }else if (caseSpecificToken.toString().equalsIgnoreCase("CASESPECIFIC")) {
036            this.caseSpecific = CASESPECIFIC;
037        }
038    }
039
040    public void accept(TParseTreeVisitor v){
041        v.preVisit(this);
042        v.postVisit(this);
043    }
044
045    public void acceptChildren(TParseTreeVisitor v){
046        v.preVisit(this);
047        v.postVisit(this);
048    }
049
050}