001package gudusoft.gsqlparser.nodes;
002/*
003 * Date: 13-2-18
004 */
005
006import gudusoft.gsqlparser.EExpressionType;
007import gudusoft.gsqlparser.sqlenv.TSQLTable;
008
009public class TUnpivotInClause extends TParseTreeNode {
010    private TPTNodeList <TUnpivotInClauseItem> items;
011
012    public TPTNodeList<TUnpivotInClauseItem> getItems() {
013        return items;
014    }
015
016    public void init(Object arg1){
017        items = (TPTNodeList)arg1;
018    }
019
020
021    public void linkColumnToPivotSourceTable(TTable table){
022        if (table == null) return;
023
024        if (items != null){
025            for(int i=0;i<items.size();i++){
026                TUnpivotInClauseItem item = items.getElement(i);
027                if (item.getColumn() != null){
028                    table.getLinkedColumns().addObjectName(item.getColumn());
029                    item.getColumn().setSourceTable(table);
030                }
031            }
032//            for(TResultColumn resultColumn:items){
033//                if (resultColumn.getExpr().getExpressionType() == EExpressionType.simple_object_name_t){
034//                    table.getLinkedColumns().addObjectName(resultColumn.getExpr().getObjectOperand());
035//                    resultColumn.getExpr().getObjectOperand().setSourceTable(table);
036//                }
037//            }
038//
039//            if (sqlTable != null){
040//                for(TResultColumn resultColumn:items){
041//                    sqlTable.addColumn(resultColumn.getDisplayName());
042//                }
043//            }
044        }
045    }
046
047    public void accept(TParseTreeVisitor v){
048        v.preVisit(this);
049        v.postVisit(this);
050    }
051
052    public void acceptChildren(TParseTreeVisitor v){
053        v.preVisit(this);
054        getItems().acceptChildren(v);
055        v.postVisit(this);
056    }
057
058    public void setItems(TPTNodeList<TUnpivotInClauseItem> items) {
059        this.items = items;
060    }
061}