@ConsumerType public interface AdapterFactory
AdapterFactoryinterface defines the API for helpers which may be provided to enhance the adaptability of adaptable objects.
Implementations of this interface are registered as OSGi services and are
used by the
AdapterManager to adapt objects on demand. The
AdapterFactory services are not really intended to be used by
AdapterManager implementations ensures that the
getAdapter(Object, Class) method is only called for the combination
of adaptable and adapter type which is allowed as per the service
|Modifier and Type||Field and Description|
The service registration property listing the fully qualified names of classes which can be adapted by this adapter factory (value is "adaptables").
The service registration property listing the fully qualified names of classes to which this factory can adapt adaptables (value is "adapters").
The service name to use when registering implementations of this interface as services.
static final String SERVICE_NAME
static final String ADAPTABLE_CLASSES
getAdapter(Object, Class)method must be an instance of one of these classes for this factory to be able to adapt the object.
@CheckForNull <AdapterType> AdapterType getAdapter(@Nonnull Object adaptable, @Nonnull Class<AdapterType> type)
ADAPTABLE_CLASSESservices registration property. The type parameter is one of the classes listed in the
ADAPTER_CLASSESservice registration properties.
This method may return
null if the adaptable object cannot
be adapted to the adapter (target) type for any reason. In this case, the
implementation should log a message to the log facility noting the cause
for not being able to adapt.
Note that the
adaptable object is not required to implement
Adaptable interface, though most of the time this method
is called by means of calling the
AdapterType- The generic type of the adapter (target) type.
adaptable- The object to adapt to the adapter type.
type- The type to which the object is to be adapted.
nullif this factory instance cannot adapt the object.
Copyright © 2017 The Apache Software Foundation. All rights reserved.