Class BeanContext.Servlet

  • All Implemented Interfaces:
    BeanContext, Cloneable, org.apache.sling.api.adapter.Adaptable
    Enclosing interface:
    BeanContext

    public static class BeanContext.Servlet
    extends BeanContext.AbstractContext
    a servlet API based implementation of the context interface for Beans in a Servlet context
    • Field Detail

      • bundleContext

        protected org.osgi.framework.BundleContext bundleContext
    • Constructor Detail

      • Servlet

        public Servlet​(javax.servlet.ServletContext servletContext,
                       org.osgi.framework.BundleContext bundleContext,
                       org.apache.sling.api.SlingHttpServletRequest request,
                       org.apache.sling.api.SlingHttpServletResponse response)
      • Servlet

        public Servlet​(javax.servlet.ServletContext servletContext,
                       org.osgi.framework.BundleContext bundleContext,
                       org.apache.sling.api.SlingHttpServletRequest request,
                       org.apache.sling.api.SlingHttpServletResponse response,
                       org.apache.sling.api.resource.Resource resource)
    • Method Detail

      • getResource

        public org.apache.sling.api.resource.Resource getResource()
        Description copied from interface: BeanContext
        Returns the resource declared in the context.
      • getResolver

        public org.apache.sling.api.resource.ResourceResolver getResolver()
        Description copied from interface: BeanContext
        Returns the resolver declared in the context.
      • getRequest

        public org.apache.sling.api.SlingHttpServletRequest getRequest()
        Description copied from interface: BeanContext
        Returns the request declared in the context.
      • getResponse

        public org.apache.sling.api.SlingHttpServletResponse getResponse()
        Description copied from interface: BeanContext
        Returns the response declared in the context.
      • getAttribute

        public <T> T getAttribute​(String name,
                                  Class<T> T)
        Description copied from interface: BeanContext
        Returns an attribute value from the context.
      • setAttribute

        public void setAttribute​(String name,
                                 Object value,
                                 BeanContext.Scope scope)
        Description copied from interface: BeanContext
        Stores an attribute in the context in th given scope.
      • getServices

        public <T> T[] getServices​(Class<T> type,
                                   String filter)
                            throws org.osgi.framework.InvalidSyntaxException
        Description copied from interface: BeanContext
        retrieves a set of services appropriate to the filter
        Throws:
        org.osgi.framework.InvalidSyntaxException
      • adaptTo

        public <AdapterType> AdapterType adaptTo​(@NotNull
                                                 @NotNull Class<AdapterType> type)

        Adapts to the components Resource, ResourceResolver, SlingHttpServletRequest, SlingHttpServletResponse, Locale, BeanContext itself, a ValueMap for the request, SlingBeans or possibly more if defined in Sling.

        In case of SlingBean we try the basic sling mechanism (possibly calling Sling-Models) and, failing that, try to instantiate and SlingBean.initialize(BeanContext) it ourselves, if it is instantiable and the Sling-Models @Model annotation is not present.

        Cached - multiple calls will always return the same object, except for ValueMap and SlingBeans.

        Adapts to ServletContext and BundleContext as well.
        Specified by:
        adaptTo in interface org.apache.sling.api.adapter.Adaptable
        Specified by:
        adaptTo in interface BeanContext
        Overrides:
        adaptTo in class BeanContext.AbstractContext
        Parameters:
        type - not null, the type to be adapted to
        Returns:
        the component of type or whatever Sling has adapters for, or null if there is nothing.
        See Also:
        SlingAdaptable.adaptTo(Class)
      • withResource

        public BeanContext.Servlet withResource​(org.apache.sling.api.resource.Resource resource)
        Description copied from interface: BeanContext
        Returns a clone of this context with the resource overridden, or this if it already had this resource. All other internal structures of this will be referenced by the copy, too.
        Parameters:
        resource - the resource
        Returns:
        a context with the BeanContext.getResource() resource, everything else (except possibly resolver) unchanged. Might be this.