001    package railo.runtime.type;
002    
003    import java.util.Iterator;
004    import java.util.List;
005    
006    import railo.runtime.exp.DatabaseException;
007    import railo.runtime.exp.DeprecatedException;
008    
009    /**
010     * implementation of the query column
011     */
012    public final class DebugQueryColumn extends QueryColumnImpl implements QueryColumnPro,Sizeable,Objects {
013          
014            
015            private boolean used;
016    
017    
018            /**
019             * @return the used
020             */
021            public boolean isUsed() {
022                    return used;
023            }
024            
025    
026        public DebugQueryColumn(Object[] data, Key key, QueryImpl query,int size, int type,
027                            boolean typeChecked) {
028                    this.data=data;
029                    this.key=key;
030                    this.query=query;
031                    this.size=size;
032                    this.type=type;
033                    this.typeChecked=typeChecked;
034            }
035            
036            
037            /**
038             * Constructor of the class
039             * for internal usage only
040             */
041            public DebugQueryColumn() {
042                    super();
043            }
044    
045    
046            @Override
047        public Object get(int row) throws DeprecatedException{
048            used=true;
049            return super.get(row);
050        }
051    
052        /**
053         * touch the given line on the column at given row
054         * @param row
055         * @return new row or existing
056         * @throws DatabaseException
057         */
058        public Object touch(int row) {
059            used=true;
060            return super.touch(row);
061        }
062        
063        /**
064         * touch the given line on the column at given row
065         * @param row
066         * @return new row or existing
067         * @throws DatabaseException
068         */
069        public Object touchEL(int row) {
070            used=true;
071            return super.touchEL(row);
072        }
073    
074            @Override
075            public Object get(int row, Object defaultValue) {
076                    used=true;
077            return super.get(row,defaultValue);
078            }
079            
080        
081            public synchronized QueryColumnPro cloneColumn(QueryImpl query, boolean deepCopy) {
082            DebugQueryColumn clone=new DebugQueryColumn();
083            populate(this, clone, deepCopy);
084            return clone;
085        }
086    
087            @Override
088            public Iterator<Object> valueIterator() {
089                    used=true;
090                    return super.valueIterator();
091            }
092            @Override
093            public int indexOf(Object o) {
094                    used=true;
095                    return super.indexOf(o);
096            }
097    
098            @Override
099            public int lastIndexOf(Object o) {
100                    used=true;
101                    return super.lastIndexOf(o);
102            }
103    
104            @Override
105            public List<Object> subList(int fromIndex, int toIndex) {
106                    used=true;
107                    return super.subList(fromIndex, toIndex);
108            }
109    
110            @Override
111            public Object[] toArray() {
112                    used=true;
113                    return super.toArray();
114            }
115    
116            @Override
117            public  Object[] toArray(Object[] trg) {
118                    used=true;
119                    return super.toArray(trg);
120            }
121            
122            public QueryColumnPro toDebugColumn() {
123                    return this;
124            }
125    }