Class SlingAdaptable

java.lang.Object
org.apache.sling.api.adapter.SlingAdaptable
All Implemented Interfaces:
Adaptable
Direct Known Subclasses:
AbstractResource, SlingAdaptable

public abstract class SlingAdaptable extends Object implements Adaptable
The SlingAdaptable class is an (abstract) default implementation of the Adaptable interface. It just uses the default AdapterManager implemented to adapt itself to the requested type.

Extensions of this class may overwrite the adaptTo(Class) method using their own knowledge of adapters and should call this base class implementation to fall back for other types.

Since:
2.2 (Sling API Bundle 2.2.0)
  • Constructor Details

    • SlingAdaptable

      public SlingAdaptable()
  • Method Details

    • setAdapterManager

      public static void setAdapterManager(AdapterManager adapterMgr)
      Sets the global AdapterManager to be used by this class.

      This method is intended to only be called by the AdapterManager wanting to register itself for use. Currently only a single adapter manager is supported by this class.

      Parameters:
      adapterMgr - The AdapterManager to be globally used.
    • unsetAdapterManager

      public static void unsetAdapterManager(AdapterManager adapterMgr)
      Unsets the global AdapterManager.

      This method is intended to only be called by the AdapterManager wanting to unregister itself. Currently only a single adapter manager is supported by this class.

      Parameters:
      adapterMgr - The AdapterManager to be unset. If this is not the same as currently registered this method has no effect.
    • adaptTo

      public <AdapterType> AdapterType adaptTo(Class<AdapterType> type)
      Calls into the registered AdapterManager to adapt this object to the desired type.

      This method implements a cache of adapters to improve performance. That is repeated calls to this method with the same class will result in the same object to be returned.

      Specified by:
      adaptTo in interface Adaptable
      Type Parameters:
      AdapterType - The generic type to which this resource 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 resource cannot adapt to the requested type