Class 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 Detail

      • SlingAdaptable

        public SlingAdaptable()
    • Method Detail

      • 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