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}