/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.seam.web; import static org.jboss.seam.annotations.Install.BUILT_IN; import javax.servlet.http.HttpServletRequest; import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.intercept.BypassInterceptors; import org.jboss.seam.contexts.Contexts; /** * A Seam component that binds the HttpServletRequest object * to the current thread. * * @author Gavin King */ @Scope(ScopeType.EVENT) @Name("org.jboss.seam.web.servletContexts") @BypassInterceptors @Install(precedence=BUILT_IN) public class ServletContexts { private HttpServletRequest request; public static ServletContexts instance() { if ( !Contexts.isEventContextActive() ) { throw new IllegalStateException("no event context active"); } return (ServletContexts) Component.getInstance(ServletContexts.class, ScopeType.EVENT); } public static ServletContexts getInstance() { return Contexts.isEventContextActive() ? (ServletContexts) Component.getInstance(ServletContexts.class, ScopeType.EVENT) : null; } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } }