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 }