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.loader.engine;
020
021import java.io.IOException;
022import java.net.URL;
023import java.util.Map;
024
025import javax.servlet.ServletConfig;
026import javax.servlet.ServletContext;
027import javax.servlet.ServletException;
028import javax.servlet.http.HttpServlet;
029import javax.servlet.http.HttpServletRequest;
030import javax.servlet.http.HttpServletResponse;
031import javax.servlet.jsp.JspException;
032
033import lucee.runtime.CFMLFactory;
034import lucee.runtime.PageContext;
035import lucee.runtime.util.Cast;
036import lucee.runtime.util.Creation;
037import lucee.runtime.util.Decision;
038import lucee.runtime.util.Excepton;
039import lucee.runtime.util.HTTPUtil;
040import lucee.runtime.util.Operation;
041import lucee.runtime.util.ResourceUtil;
042import lucee.runtime.util.ZipUtil;
043import lucee.runtime.video.VideoUtil;
044
045/**
046 * wrapper for a CFMlEngine
047 */
048public class CFMLEngineWrapper implements CFMLEngine, EngineChangeListener {
049    
050    private CFMLEngine engine;
051
052    /**
053     * constructor of the class
054     * @param engine
055     */
056    public CFMLEngineWrapper(CFMLEngine engine) {
057        this.engine=engine;
058    }
059    
060    /**
061     * @see lucee.loader.engine.CFMLEngine#addServletConfig(javax.servlet.ServletConfig)
062     */
063    public void addServletConfig(ServletConfig config) throws ServletException {
064        engine.addServletConfig(config);
065    }
066
067    /**
068     * @see lucee.loader.engine.CFMLEngine#serviceCFML(javax.servlet.http.HttpServlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
069     */
070    public void serviceCFML(HttpServlet servlet, HttpServletRequest req,
071            HttpServletResponse rsp) throws ServletException, IOException {
072        engine.serviceCFML(servlet,req,rsp);
073    }
074
075    /**
076     * @see lucee.loader.engine.CFMLEngine#serviceAMF(javax.servlet.http.HttpServlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
077     */
078    public void serviceAMF(HttpServlet servlet, HttpServletRequest req,
079            HttpServletResponse rsp) throws ServletException, IOException {
080        engine.serviceAMF(servlet,req,rsp);
081    }
082    
083    /**
084     * @see lucee.loader.engine.CFMLEngine#serviceFile(javax.servlet.http.HttpServlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
085     */
086    public void serviceFile(HttpServlet servlet, HttpServletRequest req,
087            HttpServletResponse rsp) throws ServletException, IOException {
088        engine.serviceFile(servlet,req,rsp);
089    }
090    
091
092    public void serviceRest(HttpServlet servlet, HttpServletRequest req,
093            HttpServletResponse rsp) throws ServletException, IOException {
094        engine.serviceRest(servlet,req,rsp);
095    }
096
097    /**
098     * @see lucee.loader.engine.CFMLEngine#getVersion()
099     */
100    public String getVersion() {
101        return engine.getVersion();
102    }
103
104    /**
105     * @see lucee.loader.engine.CFMLEngine#getUpdateType()
106     */
107    public String getUpdateType() {
108        return engine.getUpdateType();
109    }
110
111    /**
112     * @see lucee.loader.engine.CFMLEngine#getUpdateLocation()
113     */
114    public URL getUpdateLocation() {
115        return engine.getUpdateLocation();
116    }
117
118    /**
119     * @see lucee.loader.engine.CFMLEngine#can(int, java.lang.String)
120     */
121    public boolean can(int type, String password) {
122        return engine.can(type,password);
123    }
124
125    /**
126     * @see lucee.loader.engine.CFMLEngine#getCFMLEngineFactory()
127     */
128    public CFMLEngineFactory getCFMLEngineFactory() {
129        return engine.getCFMLEngineFactory();
130    }
131
132    /**
133     * @see lucee.loader.engine.CFMLEngine#reset()
134     */
135    public void reset() {
136        engine.reset();
137    }
138
139    /**
140     * @see lucee.loader.engine.CFMLEngine#reset(String)
141     */
142    public void reset(String configId) {
143        engine.reset(configId);
144    }
145
146    /**
147     * @see lucee.loader.engine.EngineChangeListener#onUpdate(lucee.loader.engine.CFMLEngine)
148     */
149    public void onUpdate(CFMLEngine newEngine) {
150        this.engine=newEngine;
151    }
152
153    /**
154     * @see lucee.loader.engine.CFMLEngine#getCastUtil()
155     */
156    public Cast getCastUtil() {
157        return engine.getCastUtil();
158    }
159
160    /**
161     * @see lucee.loader.engine.CFMLEngine#getOperatonUtil()
162     */
163    public Operation getOperatonUtil() {
164        return engine.getOperatonUtil();
165    }
166
167    /**
168     * @see lucee.loader.engine.CFMLEngine#getDecisionUtil()
169     */
170    public Decision getDecisionUtil() {
171        return engine.getDecisionUtil();
172    }
173
174    /**
175     * @see lucee.loader.engine.CFMLEngine#getExceptionUtil()
176     */
177    public Excepton getExceptionUtil() {
178        return engine.getExceptionUtil();
179    }
180
181    /**
182     * @see lucee.loader.engine.CFMLEngine#getCreationUtil()
183     */
184    public Creation getCreationUtil() {
185        return engine.getCreationUtil();
186    }
187
188        /**
189         *
190         * @see lucee.loader.engine.CFMLEngine#getCFMLFactory(javax.servlet.ServletContext, javax.servlet.ServletConfig, javax.servlet.http.HttpServletRequest)
191         */
192        public CFMLFactory getCFMLFactory(ServletContext srvContext, ServletConfig srvConfig, HttpServletRequest req) throws ServletException {
193                return engine.getCFMLFactory(srvContext, srvConfig, req);
194        }
195
196        /**
197         * @see lucee.loader.engine.CFMLEngine#getBlazeDSUtil()
198         */
199        public Object getBlazeDSUtil() {
200                return engine.getBlazeDSUtil();
201        }
202
203        /**
204         * @see lucee.loader.engine.CFMLEngine#getFDController()
205         */
206        public Object getFDController() {
207                return engine.getFDController();
208        }
209
210        /**
211         * @see lucee.loader.engine.CFMLEngine#getHTTPUtil()
212         */
213        public HTTPUtil getHTTPUtil() {
214                return engine.getHTTPUtil();
215        }
216
217        /**
218         * @see lucee.loader.engine.CFMLEngine#getResourceUtil()
219         */
220        public ResourceUtil getResourceUtil() {
221                return engine.getResourceUtil();
222        }
223
224        /**
225         * @see lucee.loader.engine.CFMLEngine#getThreadPageContext()
226         */
227        public PageContext getThreadPageContext() {
228                return engine.getThreadPageContext();
229        }
230
231        /**
232         * @see lucee.loader.engine.CFMLEngine#getVideoUtil()
233         */
234        public VideoUtil getVideoUtil() {
235                return engine.getVideoUtil();
236        }
237
238        /**
239         * @see lucee.loader.engine.CFMLEngine#getZipUtil()
240         */
241        public ZipUtil getZipUtil() {
242                return engine.getZipUtil();
243        }
244
245        /**
246         * @see lucee.loader.engine.CFMLEngine#getState()
247         */
248        public String getState() {
249                return engine.getState();
250        }
251        
252        /**
253         * this interface is new to this class and not offically part of Lucee 3.x, do not use outside the loader
254         * @param other
255         * @param checkReferenceEqualityOnly
256         * @return if it is the same engine it returns true
257         */
258        public boolean equalTo(CFMLEngine other, boolean checkReferenceEqualityOnly) {
259                while(other instanceof CFMLEngineWrapper)
260                        other=((CFMLEngineWrapper)other).engine;
261                if(checkReferenceEqualityOnly) return engine==other;
262                return engine.equals(other);
263        }
264
265        @Override
266        public void cli(Map<String, String> config, ServletConfig servletConfig) throws IOException, JspException, ServletException {
267                engine.cli(config, servletConfig);
268        }
269
270        @Override
271        public void registerThreadPageContext(PageContext pc) {
272                engine.registerThreadPageContext(pc);
273        }
274}