/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.mock;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.EventListener;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import javax.servlet.Filter;
import javax.servlet.FilterRegistration;
import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.ServletRegistration.Dynamic;
import javax.servlet.SessionCookieConfig;
import javax.servlet.SessionTrackingMode;
import javax.servlet.descriptor.JspConfigDescriptor;
import org.jboss.seam.util.IteratorEnumeration;
/**
* Wraps a ServletContext with own attributes.
*
* @author Marek Schmidt
*/
public class ServletContextWrapper implements ServletContext {
private ServletContext delegate;
private Map<String, Object> attributes = new HashMap<String, Object>();
public ServletContextWrapper(ServletContext delegate) {
this.delegate = delegate;
}
public Object getAttribute(String arg0) {
return attributes.get(arg0);
}
public Enumeration getAttributeNames() {
return new IteratorEnumeration(attributes.keySet().iterator());
}
public ServletContext getContext(String arg0) {
return delegate.getContext(arg0);
}
public String getContextPath() {
return delegate.getContextPath();
}
public String getInitParameter(String arg0) {
return delegate.getInitParameter(arg0);
}
public Enumeration getInitParameterNames() {
return delegate.getInitParameterNames();
}
public int getMajorVersion() {
return delegate.getMajorVersion();
}
public String getMimeType(String arg0) {
return delegate.getMimeType(arg0);
}
public int getMinorVersion() {
return delegate.getMinorVersion();
}
public RequestDispatcher getNamedDispatcher(String arg0) {
return delegate.getNamedDispatcher(arg0);
}
public String getRealPath(String arg0) {
return delegate.getRealPath(arg0);
}
public RequestDispatcher getRequestDispatcher(String arg0) {
return delegate.getRequestDispatcher(arg0);
}
public URL getResource(String arg0) throws MalformedURLException {
return delegate.getResource(arg0);
}
public InputStream getResourceAsStream(String arg0) {
InputStream ret = delegate.getResourceAsStream(arg0);
return ret;
}
public Set getResourcePaths(String arg0) {
return delegate.getResourcePaths(arg0);
}
public String getServerInfo() {
return delegate.getServerInfo();
}
public Servlet getServlet(String arg0) throws ServletException {
return delegate.getServlet(arg0);
}
public String getServletContextName() {
return "Wrap";
}
public Enumeration getServletNames() {
return delegate.getServletNames();
}
public Enumeration getServlets() {
return delegate.getServlets();
}
public void log(String arg0) {
delegate.log(arg0);
}
public void log(Exception arg0, String arg1) {
delegate.log(arg0, arg1);
}
public void log(String arg0, Throwable arg1) {
delegate.log(arg0, arg1);
}
public void removeAttribute(String arg0) {
attributes.remove(arg0);
}
public void setAttribute(String key, Object value) {
if (value == null)
{
attributes.remove(key);
}
else
{
attributes.put(key, value);
}
}
public int getEffectiveMajorVersion()
{
return delegate.getEffectiveMajorVersion();
}
public int getEffectiveMinorVersion()
{
return delegate.getEffectiveMinorVersion();
}
public boolean setInitParameter(String name, String value)
{
return delegate.setInitParameter(name, value);
}
public Dynamic addServlet(String servletName, String className)
{
return delegate.addServlet(servletName, className);
}
public Dynamic addServlet(String servletName, Servlet servlet)
{
return delegate.addServlet(servletName, servlet);
}
public Dynamic addServlet(String servletName, Class<? extends Servlet> servletClass)
{
return delegate.addServlet(servletName, servletClass);
}
public <T extends Servlet> T createServlet(Class<T> clazz) throws ServletException
{
return delegate.createServlet(clazz);
}
public ServletRegistration getServletRegistration(String servletName)
{
return delegate.getServletRegistration(servletName);
}
public Map<String, ? extends ServletRegistration> getServletRegistrations()
{
return delegate.getServletRegistrations();
}
public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className)
{
return delegate.addFilter(filterName, className);
}
public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Filter filter)
{
return delegate.addFilter(filterName, filter);
}
public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass)
{
return delegate.addFilter(filterName, filterClass);
}
public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException
{
return delegate.createFilter(clazz);
}
public FilterRegistration getFilterRegistration(String filterName)
{
return delegate.getFilterRegistration(filterName);
}
public Map<String, ? extends FilterRegistration> getFilterRegistrations()
{
return delegate.getFilterRegistrations();
}
public SessionCookieConfig getSessionCookieConfig()
{
return delegate.getSessionCookieConfig();
}
public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes)
{
delegate.setSessionTrackingModes(sessionTrackingModes);
}
public Set<SessionTrackingMode> getDefaultSessionTrackingModes()
{
return delegate.getDefaultSessionTrackingModes();
}
public Set<SessionTrackingMode> getEffectiveSessionTrackingModes()
{
return delegate.getEffectiveSessionTrackingModes();
}
public void addListener(String className)
{
delegate.addListener(className);
}
public <T extends EventListener> void addListener(T t)
{
delegate.addListener(t);
}
public void addListener(Class<? extends EventListener> listenerClass)
{
delegate.addListener(listenerClass);
}
public <T extends EventListener> T createListener(Class<T> clazz) throws ServletException
{
return delegate.createListener(clazz);
}
public JspConfigDescriptor getJspConfigDescriptor()
{
return delegate.getJspConfigDescriptor();
}
public ClassLoader getClassLoader()
{
return delegate.getClassLoader();
}
public void declareRoles(String... roleNames)
{
delegate.declareRoles(roleNames);
}
}