org.qi4j.spi.service.importer
Class ServiceSelectorImporter<T>

java.lang.Object
  extended by org.qi4j.spi.service.importer.ServiceSelectorImporter<T>
All Implemented Interfaces:
ServiceImporter<T>

public final class ServiceSelectorImporter<T>
extends Object
implements ServiceImporter<T>

If several services are available with a given type, and you want to constrain the current module to use a specific one, then use this importer. Specify a Specification<ServiceReference<T>> criteria as meta-info for the service, which will be applied to the list of available services, and the first match will be chosen. This importer will avoid selecting itself, as could be possible if the ServiceQualifier.first() filter is used.


Constructor Summary
ServiceSelectorImporter()
           
 
Method Summary
 T importService(ImportedServiceDescriptor serviceDescriptor)
          Imports an instance of the service type described in the service descriptor.
 boolean isActive(T instance)
          Ask if the underlying service is currently active or not.
 boolean isAvailable(T instance)
          Ask if the service is available or not.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServiceSelectorImporter

public ServiceSelectorImporter()
Method Detail

importService

public T importService(ImportedServiceDescriptor serviceDescriptor)
                throws ServiceImporterException
Description copied from interface: ServiceImporter
Imports an instance of the service type described in the service descriptor.

Specified by:
importService in interface ServiceImporter<T>
Parameters:
serviceDescriptor - The service descriptor.
Returns:
The imported service instance.
Throws:
ServiceImporterException - if import failed.

isActive

public boolean isActive(T instance)
Description copied from interface: ServiceImporter
Ask if the underlying service is currently active or not.

Specified by:
isActive in interface ServiceImporter<T>
Parameters:
instance - the instance to be checked
Returns:
true if the service is active, false if not

isAvailable

public boolean isAvailable(T instance)
Description copied from interface: ServiceImporter
Ask if the service is available or not.

Specified by:
isAvailable in interface ServiceImporter<T>
Parameters:
instance - the instance to be checked
Returns:
true if the service is available, false if not