Interface Adaptable

All Known Subinterfaces:
Resource, ResourceResolver, SlingHttpServletRequest, SlingHttpServletResponse, SlingHttpServletResponseResult
All Known Implementing Classes:
AbstractResource, AuthorizableResource, BaseResource, ContentFileResource, FileResource, HeadServletResponse, JspSlingHttpServletResponseWrapper, NestedAuthorizableResource, NonExistingResource, OnDemandReaderRequest, OnDemandWriterResponse, PrincipalResource, PrintWriterResponseWrapper, RedirectResource, RequestWrapper, ResourceResolverWrapper, ResourceWrapper, ServletResource, SlingAdaptable, SlingAdaptable, SlingHttpServletRequestWrapper, SlingHttpServletResponseWrapper, SlingServletRequestAdapter, SlingServletResponseAdapter, StarResource, SyntheticResource

@ConsumerType public interface Adaptable
The Adaptable interface identifies objects which can be adapted to other types or representations of the same object. For example a JCR Node based Resource can adapt to the underlying JCR Node or a file based resource could adapt to the underlying java.io.File.
  • Method Summary

    Modifier and Type
    Method
    Description
    <AdapterType>
    AdapterType
    adaptTo(@NotNull Class<AdapterType> type)
    Adapts the adaptable to another type.
  • Method Details

    • adaptTo

      @Nullable <AdapterType> AdapterType adaptTo(@NotNull @NotNull Class<AdapterType> type)
      Adapts the adaptable to another type.

      Please note that it is explicitly left as an implementation detail whether each call to this method with the same type yields the same object or a new object on each call.

      Implementations of this method should document their adapted types as well as their behaviour with respect to returning newly created or same instances on each call.

      Type Parameters:
      AdapterType - The generic type to which this object is adapted to
      Parameters:
      type - The Class object of the target type, such as javax.jcr.Node.class or java.io.File.class
      Returns:
      The adapter target or null if the object cannot adapt to the requested type