/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.page; import javax.servlet.http.HttpServletRequest; import com.enonic.cms.core.servlet.ServletRequestAccessor; /** * This class implements the page request factory. */ public abstract class PageRequestFactory { /** * Request attribute. */ private final static String ATTRIBUTE_KEY = "cms:pageRequest"; /** * Return the page request. */ public static PageRequest getPageRequest() { return getPageRequest( ServletRequestAccessor.getRequest() ); } /** * Return the page request. */ public static PageRequest getPageRequest( HttpServletRequest req ) { PageRequest result = (PageRequest) req.getAttribute( ATTRIBUTE_KEY ); if ( result == null ) { result = createPageRequest( req ); req.setAttribute( ATTRIBUTE_KEY, result ); } return result; } /** * Create the page request. */ private static PageRequest createPageRequest( HttpServletRequest req ) { return new ServletPageRequest( req ); } }