Class RequestData


  • public class RequestData
    extends Object
    The RequestData class provides access to objects which are set on a Servlet Request wide basis such as the repository session, the persistence manager, etc. The setup order is:
    1. Invoke constructor
    2. Invoke initResource()
    3. Invoke initServlet()
    See Also:
    ContentData
    • Field Detail

      • DEFAULT_MAX_INCLUSION_COUNTER

        public static final int DEFAULT_MAX_INCLUSION_COUNTER
        The default value for the number of recursive inclusions for a single instance of this class (value is 50).
        See Also:
        Constant Field Values
      • REQUEST_RESOURCE_PATH_ATTR

        public static final String REQUEST_RESOURCE_PATH_ATTR
        The name of the request attribute providing the resource addressed by the request URL.
        See Also:
        Constant Field Values
    • Constructor Detail

      • RequestData

        public RequestData​(org.apache.sling.engine.impl.SlingRequestProcessorImpl slingRequestProcessor,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response)
    • Method Detail

      • setMaxCallCounter

        public static void setMaxCallCounter​(int maxCallCounter)
      • getMaxCallCounter

        public static int getMaxCallCounter()
      • setMaxIncludeCounter

        public static void setMaxIncludeCounter​(int maxInclusionCounter)
      • getMaxIncludeCounter

        public static int getMaxIncludeCounter()
      • setSlingMainServlet

        public static void setSlingMainServlet​(org.apache.sling.engine.impl.SlingMainServlet slingMainServlet)
      • setAdditionalResponseHeaders

        public static void setAdditionalResponseHeaders​(ArrayList<org.apache.sling.engine.impl.StaticResponseHeader> mappings)
      • getAdditionalResponseHeaders

        public static ArrayList<org.apache.sling.engine.impl.StaticResponseHeader> getAdditionalResponseHeaders()
      • initResource

        public org.apache.sling.api.resource.Resource initResource​(org.apache.sling.api.resource.ResourceResolver resourceResolver)
      • initServlet

        public void initServlet​(org.apache.sling.api.resource.Resource resource,
                                org.apache.sling.api.servlets.ServletResolver sr)
      • getSlingRequestProcessor

        public org.apache.sling.engine.impl.SlingRequestProcessorImpl getSlingRequestProcessor()
      • getServletRequest

        public javax.servlet.http.HttpServletRequest getServletRequest()
      • getServletResponse

        public javax.servlet.http.HttpServletResponse getServletResponse()
      • getSlingRequest

        public org.apache.sling.api.SlingHttpServletRequest getSlingRequest()
      • getSlingResponse

        public org.apache.sling.api.SlingHttpServletResponse getSlingResponse()
      • unwrap

        public static org.apache.sling.api.SlingHttpServletRequest unwrap​(javax.servlet.ServletRequest request)
        Unwraps the ServletRequest to a SlingHttpServletRequest.
        Parameters:
        request - the request
        Returns:
        the unwrapped request
        Throws:
        IllegalArgumentException - If the request is not a SlingHttpServletRequest and not a ServletRequestWrapper wrapping a SlingHttpServletRequest.
      • unwrap

        public static org.apache.sling.engine.impl.SlingHttpServletRequestImpl unwrap​(org.apache.sling.api.SlingHttpServletRequest request)
        Unwraps the SlingHttpServletRequest to a SlingHttpServletRequestImpl
        Parameters:
        request - the request
        Returns:
        the unwrapped request
        Throws:
        IllegalArgumentException - If request is not a SlingHttpServletRequestImpl and not SlingHttpServletRequestWrapper wrapping a SlingHttpServletRequestImpl.
      • unwrap

        public static org.apache.sling.api.SlingHttpServletResponse unwrap​(javax.servlet.ServletResponse response)
        Unwraps the ServletRequest to a SlingHttpServletRequest.
        Parameters:
        response - the response
        Returns:
        the unwrapped response
        Throws:
        IllegalArgumentException - If the response is not a SlingHttpServletResponse and not a ServletResponseWrapper wrapping a SlingHttpServletResponse.
      • unwrap

        public static org.apache.sling.engine.impl.SlingHttpServletResponseImpl unwrap​(org.apache.sling.api.SlingHttpServletResponse response)
        Unwraps a SlingHttpServletResponse to a SlingHttpServletResponseImpl
        Parameters:
        response - the response
        Returns:
        the unwrapped response
        Throws:
        IllegalArgumentException - If response is not a SlingHttpServletResponseImpl and not SlingHttpServletResponseWrapper wrapping a SlingHttpServletResponseImpl.
      • getRequestData

        public static RequestData getRequestData​(javax.servlet.ServletRequest request)
        Parameters:
        request - the request
        Returns:
        the request data
        Throws:
        IllegalArgumentException - If the request is not a SlingHttpServletRequest and not a ServletRequestWrapper wrapping a SlingHttpServletRequest.
      • getRequestData

        public static RequestData getRequestData​(org.apache.sling.api.SlingHttpServletRequest request)
        Parameters:
        request - the request
        Returns:
        the request data
        Throws:
        IllegalArgumentException - If request is not a SlingHttpServletRequestImpl and not SlingHttpServletRequestWrapper wrapping a SlingHttpServletRequestImpl.
      • toSlingHttpServletRequest

        public static org.apache.sling.api.SlingHttpServletRequest toSlingHttpServletRequest​(javax.servlet.ServletRequest request)
        Parameters:
        request - the request
        Returns:
        the sling http servlet request
        Throws:
        IllegalArgumentException - if request is not a HttpServletRequest of if request is not backed by SlingHttpServletRequestImpl.
      • toSlingHttpServletResponse

        public static org.apache.sling.api.SlingHttpServletResponse toSlingHttpServletResponse​(javax.servlet.ServletResponse response)
        Parameters:
        response - the response
        Returns:
        the sling http servlet response
        Throws:
        IllegalArgumentException - if response is not a HttpServletResponse of if response is not backed by SlingHttpServletResponseImpl.
      • service

        public static void service​(org.apache.sling.api.SlingHttpServletRequest request,
                                   org.apache.sling.api.SlingHttpServletResponse response)
                            throws IOException,
                                   javax.servlet.ServletException
        Helper method to call the servlet for the current content data. If the current content data has no servlet, NOT_FOUND (404) error is sent and the method terminates.

        If the the servlet exists, the SlingConstants.SLING_CURRENT_SERVLET_NAME request attribute is set to the name of that servlet and that servlet name is also set as the currently active servlet. After the termination of the servlet (normal or throwing a Throwable) the request attribute is reset to the previous value. The name of the currently active servlet is only reset to the previous value if the servlet terminates normally. In case of a Throwable, the active servlet name is not reset and indicates which servlet caused the potential abort of the request.

        Parameters:
        request - The request object for the service method
        response - The response object for the service method
        Throws:
        IOException - May be thrown by the servlet's service method
        javax.servlet.ServletException - May be thrown by the servlet's service method
      • setContent

        public ContentData setContent​(org.apache.sling.api.resource.Resource resource,
                                      org.apache.sling.api.request.RequestPathInfo requestPathInfo)
      • resetContent

        public void resetContent​(ContentData data)
      • getResourceResolver

        public org.apache.sling.api.resource.ResourceResolver getResourceResolver()
      • getRequestProgressTracker

        public org.apache.sling.api.request.RequestProgressTracker getRequestProgressTracker()
      • getPeakRecusionDepth

        public int getPeakRecusionDepth()
      • getServletCallCount

        public int getServletCallCount()
      • getElapsedTimeMsec

        public long getElapsedTimeMsec()
      • setActiveServletName

        public String setActiveServletName​(String servletName)
        Sets the name of the currently active servlet and returns the name of the previously active servlet.
        Parameters:
        servletName - the servlet name
        Returns:
        the previous servlet name
      • getActiveServletName

        public String getActiveServletName()
        Returns the name of the currently active servlet. If this name is not null at the end of request processing, more precisly in the case of an uncaught Throwable at the end of request processing, this is the name of the servlet causing the uncaught Throwable.
        Returns:
        the current servlet name
      • adaptTo

        public <Type> Type adaptTo​(Object object,
                                   Class<Type> type)
      • getMimeType

        public String getMimeType​(String fileName)
      • getInputStream

        public javax.servlet.ServletInputStream getInputStream()
                                                        throws IOException
        Throws:
        IOException