001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.apache.bridges.struts;
016    
017    import java.io.InputStream;
018    
019    import java.net.MalformedURLException;
020    import java.net.URL;
021    
022    import java.util.ArrayList;
023    import java.util.Collections;
024    import java.util.Enumeration;
025    import java.util.Set;
026    
027    import javax.servlet.RequestDispatcher;
028    import javax.servlet.Servlet;
029    import javax.servlet.ServletContext;
030    
031    /**
032     * @author Michael Young
033     */
034    public class LiferayServletContext implements ServletContext {
035    
036            public LiferayServletContext(ServletContext servletContext) {
037                    _servletContext = servletContext;
038            }
039    
040            public Object getAttribute(String name) {
041                    return _servletContext.getAttribute(name);
042            }
043    
044            public Enumeration<String> getAttributeNames() {
045                    return _servletContext.getAttributeNames();
046            }
047    
048            public ServletContext getContext(String uriPath) {
049                    ServletContext servletContext = _servletContext.getContext(uriPath);
050    
051                    if (servletContext == _servletContext) {
052                            return this;
053                    }
054                    else {
055                            return servletContext;
056                    }
057            }
058    
059            public String getContextPath() {
060                    return _servletContext.getContextPath();
061            }
062    
063            public String getInitParameter(String name) {
064                    return _servletContext.getInitParameter(name);
065            }
066    
067            public Enumeration<String> getInitParameterNames() {
068                    return _servletContext.getInitParameterNames();
069            }
070    
071            public int getMajorVersion() {
072                    return _servletContext.getMajorVersion();
073            }
074    
075            public String getMimeType(String file) {
076                    return _servletContext.getMimeType(file);
077            }
078    
079            public int getMinorVersion() {
080                    return _servletContext.getMinorVersion();
081            }
082    
083            public RequestDispatcher getNamedDispatcher(String name) {
084                    RequestDispatcher requestDispatcher =
085                            _servletContext.getNamedDispatcher(name);
086    
087                    if (requestDispatcher != null) {
088                            requestDispatcher = new LiferayRequestDispatcher(
089                                    requestDispatcher, name);
090                    }
091    
092                    return requestDispatcher;
093            }
094    
095            public String getRealPath(String path) {
096                    return _servletContext.getRealPath(path);
097            }
098    
099            public RequestDispatcher getRequestDispatcher(String path) {
100                    RequestDispatcher requestDispatcher =
101                            _servletContext.getRequestDispatcher(path);
102    
103                    if (requestDispatcher != null) {
104                            requestDispatcher = new LiferayRequestDispatcher(
105                                    requestDispatcher, path);
106                    }
107    
108                    return requestDispatcher;
109            }
110    
111            public URL getResource(String path) throws MalformedURLException {
112                    return _servletContext.getResource(path);
113            }
114    
115            public InputStream getResourceAsStream(String path) {
116                    return _servletContext.getResourceAsStream(path);
117            }
118    
119            public Set<String> getResourcePaths(String path) {
120                    return _servletContext.getResourcePaths(path);
121            }
122    
123            public String getServerInfo() {
124                    return _servletContext.getServerInfo();
125            }
126    
127            public Servlet getServlet(String name) {
128                    return null;
129            }
130    
131            public String getServletContextName() {
132                    return _servletContext.getServletContextName();
133            }
134    
135            public Enumeration<String> getServletNames() {
136                    return Collections.enumeration(new ArrayList<String>());
137            }
138    
139            public Enumeration<Servlet> getServlets() {
140                    return Collections.enumeration(new ArrayList<Servlet>());
141            }
142    
143            public void log(Exception exception, String message) {
144                    _servletContext.log(message, exception);
145            }
146    
147            public void log(String message) {
148                    _servletContext.log(message);
149            }
150    
151            public void log(String message, Throwable t) {
152                    _servletContext.log(message, t);
153            }
154    
155            public void removeAttribute(String name) {
156                    _servletContext.removeAttribute(name);
157            }
158    
159            public void setAttribute(String name, Object value) {
160                    _servletContext.setAttribute(name, value);
161            }
162    
163            public String toString() {
164                    return _servletContext.toString();
165            }
166    
167            private ServletContext _servletContext;
168    
169    }