001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.runtime.type.trace; 020 021import java.util.Comparator; 022import java.util.List; 023 024import lucee.runtime.debug.Debugger; 025import lucee.runtime.exp.PageException; 026import lucee.runtime.op.Duplicator; 027import lucee.runtime.type.Array; 028import lucee.runtime.type.Collection; 029 030public class TOArray extends TOCollection implements Array { 031 032 private static final long serialVersionUID = 5130217962217368552L; 033 034 private final Array arr; 035 036 protected TOArray(Debugger debugger,Array arr,int type,String category,String text) { 037 super(debugger,arr, type, category, text); 038 this.arr=arr; 039 } 040 041 @Override 042 public int getDimension() { 043 log(); 044 return arr.getDimension(); 045 } 046 047 @Override 048 public Object get(int key, Object defaultValue) { 049 log(""+key); 050 return arr.get(key, defaultValue); 051 //return TraceObjectSupport.toTraceObject(debugger,arr.get(key, defaultValue),type,category,text); 052 } 053 054 @Override 055 public Object getE(int key) throws PageException { 056 log(""+key); 057 return arr.getE(key); 058 //return TraceObjectSupport.toTraceObject(debugger,arr.getE(key),type,category,text); 059 } 060 061 @Override 062 public Object setEL(int key, Object value) { 063 log(""+key,value); 064 return arr.setEL(key, value); 065 //return TraceObjectSupport.toTraceObject(debugger,arr.setEL(key, value),type,category,text); 066 } 067 068 @Override 069 public Object setE(int key, Object value) throws PageException { 070 log(""+key,value); 071 return arr.setEL(key, value); 072 //return TraceObjectSupport.toTraceObject(debugger,arr.setEL(key, value),type,category,text); 073 } 074 075 @Override 076 public int[] intKeys() { 077 log(); 078 return arr.intKeys(); 079 } 080 081 @Override 082 public boolean insert(int key, Object value) throws PageException { 083 log(""+key); 084 return arr.insert(key, value); 085 } 086 087 @Override 088 public Object append(Object o) throws PageException { 089 log(o.toString()); 090 return arr.append(o); 091 //return TraceObjectSupport.toTraceObject(debugger,arr.append(o),type,category,text); 092 } 093 094 @Override 095 public Object appendEL(Object o) { 096 log(o.toString()); 097 return arr.appendEL(o); 098 //return TraceObjectSupport.toTraceObject(debugger,arr.appendEL(o),type,category,text); 099 } 100 101 @Override 102 public Object prepend(Object o) throws PageException { 103 log(); 104 return arr.prepend(o); 105 //return TraceObjectSupport.toTraceObject(debugger,arr.prepend(o),type,category,text); 106 } 107 108 @Override 109 public void resize(int to) throws PageException { 110 log(); 111 arr.resize(to); 112 } 113 114 @Override 115 public void sort(String sortType, String sortOrder) throws PageException { 116 log(); 117 arr.sort(sortType, sortOrder); 118 } 119 120 @Override 121 public void sort(Comparator comp) { 122 log(); 123 arr.sort(comp); 124 } 125 126 @Override 127 public Object[] toArray() { 128 log(); 129 return arr.toArray(); 130 } 131 132 @Override 133 public List toList() { 134 log(); 135 return arr.toList(); 136 } 137 138 @Override 139 public Object removeE(int key) throws PageException { 140 log(""+key); 141 return arr.removeE(key); 142 //return TraceObjectSupport.toTraceObject(debugger,arr.removeE(key),type,category,text); 143 } 144 145 @Override 146 public Object removeEL(int key) { 147 log(""+key); 148 return arr.removeEL(key); 149 //return TraceObjectSupport.toTraceObject(debugger,arr.removeEL(key),type,category,text); 150 } 151 152 @Override 153 public boolean containsKey(int key) { 154 log(""+key); 155 return arr.containsKey(key); 156 } 157 158 @Override 159 public Collection duplicate(boolean deepCopy) { 160 log(); 161 return new TOArray(debugger,(Array)Duplicator.duplicate(arr,deepCopy),type,category,text); 162 } 163 164 @Override 165 public java.util.Iterator<Object> getIterator() { 166 return valueIterator(); 167 } 168 169}