/* | |
* $Id: PortletServletContext.java 590812 2007-10-31 20:32:54Z apetrelli $ | |
* | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you under the Apache License, Version 2.0 (the | |
* "License"); you may not use this file except in compliance | |
* with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, | |
* software distributed under the License is distributed on an | |
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
* KIND, either express or implied. See the License for the | |
* specific language governing permissions and limitations | |
* under the License. | |
*/ | |
package org.apache.struts2.portlet.servlet; | |
import java.io.InputStream; | |
import java.net.MalformedURLException; | |
import java.net.URL; | |
import java.util.Enumeration; | |
import java.util.Set; | |
import javax.portlet.PortletContext; | |
import javax.portlet.PortletRequestDispatcher; | |
import javax.servlet.RequestDispatcher; | |
import javax.servlet.Servlet; | |
import javax.servlet.ServletContext; | |
import javax.servlet.ServletException; | |
/** | |
* Wrapper object exposing a {@link PortletContext} as a {@link ServletContext} instance. | |
* Clients accessing this context object will in fact operate on the | |
* {@link PortletContext} object wrapped by this context object. | |
*/ | |
public class PortletServletContext implements ServletContext { | |
private PortletContext portletContext; | |
public PortletServletContext(PortletContext portletContext) { | |
this.portletContext = portletContext; | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getAttribute(java.lang.String) | |
*/ | |
public Object getAttribute(String name) { | |
return portletContext.getAttribute(name); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getAttributeNames() | |
*/ | |
public Enumeration getAttributeNames() { | |
return portletContext.getAttributeNames(); | |
} | |
/** | |
* @see javax.servlet.ServletContext#getContext(java.lang.String) | |
* @throws IllegalStateException Not supported in a portlet. | |
*/ | |
public ServletContext getContext(String uripath) { | |
throw new IllegalStateException("Not supported in a portlet"); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getInitParameter(java.lang.String) | |
*/ | |
public String getInitParameter(String name) { | |
return portletContext.getInitParameter(name); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getInitParameterNames() | |
*/ | |
public Enumeration getInitParameterNames() { | |
return portletContext.getInitParameterNames(); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getMajorVersion() | |
*/ | |
public int getMajorVersion() { | |
return portletContext.getMajorVersion(); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getMimeType(java.lang.String) | |
*/ | |
public String getMimeType(String file) { | |
return portletContext.getMimeType(file); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getMinorVersion() | |
*/ | |
public int getMinorVersion() { | |
return portletContext.getMinorVersion(); | |
} | |
/** | |
* Returns a {@link PortletServletRequestDispatcher} wrapping the {@link PortletRequestDispatcher} | |
* as a {@link RequestDispatcher} instance. | |
* @see javax.servlet.ServletContext#getNamedDispatcher(java.lang.String) | |
* @return PortletServletRequestDispatcher | |
*/ | |
public RequestDispatcher getNamedDispatcher(String name) { | |
return new PortletServletRequestDispatcher(portletContext.getNamedDispatcher(name)); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getRealPath(java.lang.String) | |
*/ | |
public String getRealPath(String path) { | |
return portletContext.getRealPath(path); | |
} | |
/** | |
* Returns a {@link PortletServletRequestDispatcher} wrapping the {@link PortletRequestDispatcher} | |
* as a {@link RequestDispatcher} instance. | |
* @see javax.servlet.ServletContext#getNamedDispatcher(java.lang.String) | |
* @return PortletServletRequestDispatcher | |
*/ | |
public RequestDispatcher getRequestDispatcher(String path) { | |
return new PortletServletRequestDispatcher(portletContext.getRequestDispatcher(path)); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getResource(java.lang.String) | |
*/ | |
public URL getResource(String path) throws MalformedURLException { | |
return portletContext.getResource(path); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getResourceAsStream(java.lang.String) | |
*/ | |
public InputStream getResourceAsStream(String path) { | |
return portletContext.getResourceAsStream(path); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getResourcePaths(java.lang.String) | |
*/ | |
public Set getResourcePaths(String path) { | |
return portletContext.getResourcePaths(path); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getServerInfo() | |
*/ | |
public String getServerInfo() { | |
return portletContext.getServerInfo(); | |
} | |
/** | |
* @see javax.servlet.ServletContext#getServlet(java.lang.String) | |
* @throws IllegalStateException Not supported in a portlet. | |
*/ | |
public Servlet getServlet(String name) throws ServletException { | |
throw new IllegalStateException("Not allowed in a portlet"); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#getServletContextName() | |
*/ | |
public String getServletContextName() { | |
return portletContext.getPortletContextName(); | |
} | |
/** | |
* @see javax.servlet.ServletContext#getServletNames() | |
* @throws IllegalStateException Not supported in a portlet. | |
*/ | |
public Enumeration getServletNames() { | |
throw new IllegalStateException("Not allowed in a portlet"); | |
} | |
/** | |
* @see javax.servlet.ServletContext#getServlets() | |
* @throws IllegalStateException Not supported in a portlet. | |
*/ | |
public Enumeration getServlets() { | |
throw new IllegalStateException("Not allowed in a portlet"); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#log(java.lang.String) | |
*/ | |
public void log(String msg) { | |
portletContext.log(msg); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#log(java.lang.Exception, java.lang.String) | |
*/ | |
public void log(Exception exception, String msg) { | |
log(msg, exception); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#log(java.lang.String, java.lang.Throwable) | |
*/ | |
public void log(String message, Throwable throwable) { | |
portletContext.log(message, throwable); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#removeAttribute(java.lang.String) | |
*/ | |
public void removeAttribute(String name) { | |
portletContext.removeAttribute(name); | |
} | |
/* (non-Javadoc) | |
* @see javax.servlet.ServletContext#setAttribute(java.lang.String, java.lang.Object) | |
*/ | |
public void setAttribute(String name, Object object) { | |
portletContext.setAttribute(name, object); | |
} | |
/** | |
* Get the wrapped {@link PortletContext} instance. | |
* @return The wrapped {@link PortletContext} instance. | |
*/ | |
public PortletContext getPortletContext() { | |
return portletContext; | |
} | |
} |