org.apache.sling.api.adapter
Class SlingAdaptable

java.lang.Object
  extended by 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

Constructor Summary
SlingAdaptable()
           
 
Method Summary
<AdapterType>
AdapterType
adaptTo(Class<AdapterType> type)
          Calls into the registered AdapterManager to adapt this object to the desired type.
static void setAdapterManager(AdapterManager adapterMgr)
          Sets the global AdapterManager to be used by this class.
static void unsetAdapterManager(AdapterManager adapterMgr)
          Unsets the global AdapterManager.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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


Copyright © 2011-2013 Adobe Systems Incorporated. All Rights Reserved.