001package gudusoft.gsqlparser.nodes.teradata;
002
003import gudusoft.gsqlparser.ESqlClause;
004import gudusoft.gsqlparser.TCustomSqlStatement;
005import gudusoft.gsqlparser.nodes.TObjectName;
006import gudusoft.gsqlparser.nodes.TObjectNameList;
007import gudusoft.gsqlparser.nodes.TParseTreeNode;
008import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
009
010public class TCollectColumnIndex extends TParseTreeNode {
011    private boolean isIndex = false;
012    private boolean isColumn = false;
013    private boolean isUnique = false;
014    private boolean isAll = false;
015
016
017
018    private TObjectName columnName;
019    private TObjectName indexName;
020    private TObjectNameList columnNameList;
021    private TObjectName orderByColumnName;
022    private TObjectName statisticsName;
023
024    public void setAll(boolean all) {
025        isAll = all;
026    }
027
028    public boolean isAll() {
029
030        return isAll;
031    }
032
033
034    public void setColumnName(TObjectName columnName) {
035        this.columnName = columnName;
036    }
037
038    public void setColumnNameList(TObjectNameList columnNameList) {
039        this.columnNameList = columnNameList;
040    }
041
042    public void setIndexName(TObjectName indexName) {
043        this.indexName = indexName;
044    }
045
046    public void setColumn(boolean column) {
047        isColumn = column;
048    }
049
050    public void setIndex(boolean index) {
051        isIndex = index;
052    }
053
054    public void setUnique(boolean unique) {
055        isUnique = unique;
056    }
057
058    public void setOrderByColumnName(TObjectName orderByColumnName) {
059        this.orderByColumnName = orderByColumnName;
060    }
061
062    public void setStatisticsName(TObjectName statisticsName) {
063        this.statisticsName = statisticsName;
064    }
065
066    public TObjectName getColumnName() {
067
068        return columnName;
069    }
070
071    public TObjectNameList getColumnNameList() {
072        return columnNameList;
073    }
074
075    public TObjectName getIndexName() {
076        return indexName;
077    }
078
079    public boolean isColumn() {
080        return isColumn;
081    }
082
083    public boolean isIndex() {
084        return isIndex;
085    }
086
087    public boolean isUnique() {
088        return isUnique;
089    }
090
091    public TObjectName getOrderByColumnName() {
092        return orderByColumnName;
093    }
094
095    public TObjectName getStatisticsName() {
096        return statisticsName;
097    }
098
099    public void doParse(TCustomSqlStatement psql, ESqlClause plocation){
100        if ((psql != null)&&(getColumnNameList() != null))
101            if ((psql.tables.size() > 0)&&(getColumnNameList().size() > 0)){
102                for(int i=0;i<getColumnNameList().size();i++){
103                    psql.tables.getTable(0).getObjectNameReferences().addObjectName(getColumnNameList().getObjectName(i));
104                    psql.tables.getTable(0).getLinkedColumns().addObjectName(getColumnNameList().getObjectName(i));
105                    getColumnNameList().getObjectName(i).setSourceTable(psql.tables.getTable(0));
106
107                }
108            }
109    }
110
111    public void accept(TParseTreeVisitor v){
112        v.preVisit(this);
113        v.postVisit(this);
114    }
115
116    public void acceptChildren(TParseTreeVisitor v){
117        v.preVisit(this);
118        v.postVisit(this);
119    }
120
121}