/** * * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * **/ package lucee.runtime.type.trace; import java.util.Comparator; import java.util.List; import lucee.runtime.debug.Debugger; import lucee.runtime.exp.PageException; import lucee.runtime.op.Duplicator; import lucee.runtime.type.Array; import lucee.runtime.type.Collection; public class TOArray extends TOCollection implements Array { private static final long serialVersionUID = 5130217962217368552L; private final Array arr; protected TOArray(Debugger debugger,Array arr,int type,String category,String text) { super(debugger,arr, type, category, text); this.arr=arr; } @Override public int getDimension() { log(); return arr.getDimension(); } @Override public Object get(int key, Object defaultValue) { log(""+key); return arr.get(key, defaultValue); //return TraceObjectSupport.toTraceObject(debugger,arr.get(key, defaultValue),type,category,text); } @Override public Object getE(int key) throws PageException { log(""+key); return arr.getE(key); //return TraceObjectSupport.toTraceObject(debugger,arr.getE(key),type,category,text); } @Override public Object setEL(int key, Object value) { log(""+key,value); return arr.setEL(key, value); //return TraceObjectSupport.toTraceObject(debugger,arr.setEL(key, value),type,category,text); } @Override public Object setE(int key, Object value) throws PageException { log(""+key,value); return arr.setEL(key, value); //return TraceObjectSupport.toTraceObject(debugger,arr.setEL(key, value),type,category,text); } @Override public int[] intKeys() { log(); return arr.intKeys(); } @Override public boolean insert(int key, Object value) throws PageException { log(""+key); return arr.insert(key, value); } @Override public Object append(Object o) throws PageException { log(o.toString()); return arr.append(o); //return TraceObjectSupport.toTraceObject(debugger,arr.append(o),type,category,text); } @Override public Object appendEL(Object o) { log(o.toString()); return arr.appendEL(o); //return TraceObjectSupport.toTraceObject(debugger,arr.appendEL(o),type,category,text); } @Override public Object prepend(Object o) throws PageException { log(); return arr.prepend(o); //return TraceObjectSupport.toTraceObject(debugger,arr.prepend(o),type,category,text); } @Override public void resize(int to) throws PageException { log(); arr.resize(to); } @Override public void sort(String sortType, String sortOrder) throws PageException { log(); arr.sort(sortType, sortOrder); } @Override public void sortIt(Comparator comp) { log(); arr.sortIt(comp); } @Override public Object[] toArray() { log(); return arr.toArray(); } @Override public List toList() { log(); return arr.toList(); } @Override public Object removeE(int key) throws PageException { log(""+key); return arr.removeE(key); //return TraceObjectSupport.toTraceObject(debugger,arr.removeE(key),type,category,text); } @Override public Object removeEL(int key) { log(""+key); return arr.removeEL(key); //return TraceObjectSupport.toTraceObject(debugger,arr.removeEL(key),type,category,text); } @Override public Object remove(Collection.Key key, Object defaultValue) { log(""+key); return arr.remove(key,defaultValue); } @Override public boolean containsKey(int key) { log(""+key); return arr.containsKey(key); } @Override public Collection duplicate(boolean deepCopy) { log(); return new TOArray(debugger,(Array)Duplicator.duplicate(arr,deepCopy),type,category,text); } @Override public java.util.Iterator<Object> getIterator() { return valueIterator(); } }