Interface ServiceTrackerCustomizer<S,T,U extends org.osgi.framework.ServiceEvent>
-
- Type Parameters:
S
- The type of the service being tracked.T
- The type of the tracked object.
public interface ServiceTrackerCustomizer<S,T,U extends org.osgi.framework.ServiceEvent>
TheServiceTrackerCustomizer
interface allows aServiceTracker
to customize the service objects that are tracked. AServiceTrackerCustomizer
is called when a service is being added to aServiceTracker
. TheServiceTrackerCustomizer
can then return an object for the tracked service. AServiceTrackerCustomizer
is also called when a tracked service is modified or has been removed from aServiceTracker
.The methods in this interface may be called as the result of a
ServiceEvent
being received by aServiceTracker
. SinceServiceEvent
s are synchronously delivered by the Framework, it is highly recommended that implementations of these methods do not register (BundleContext.registerService
), modify (ServiceRegistration.setProperties
) or unregister (ServiceRegistration.unregister
) a service while being synchronized on any object.The
ServiceTracker
class is thread-safe. It does not call aServiceTrackerCustomizer
while holding any locks.ServiceTrackerCustomizer
implementations must also be thread-safe.- Version:
- $Id: c14b8d47026b6bd4ba1f2db7bf7e755d00fc6f6a $
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addedService(org.osgi.framework.ServiceReference<S> reference, T service, int trackingCount, int serviceCount, U event)
T
addingService(org.osgi.framework.ServiceReference<S> reference)
A service is being added to theServiceTracker
.void
modifiedService(org.osgi.framework.ServiceReference<S> reference, T service, int trackingCount, U event)
A service tracked by theServiceTracker
has been modified.void
removedService(org.osgi.framework.ServiceReference<S> reference, T service, int trackingCount, U event)
A service tracked by theServiceTracker
has been removed.
-
-
-
Method Detail
-
addingService
T addingService(org.osgi.framework.ServiceReference<S> reference)
A service is being added to theServiceTracker
.This method is called before a service which matched the search parameters of the
ServiceTracker
is added to theServiceTracker
. This method should return the service object to be tracked for the specifiedServiceReference
. The returned service object is stored in theServiceTracker
and is available from thegetService
andgetServices
methods.- Parameters:
reference
- The reference to the service being added to theServiceTracker
.- Returns:
- The service object to be tracked for the specified referenced
service or
null
if the specified referenced service should not be tracked.
-
addedService
void addedService(org.osgi.framework.ServiceReference<S> reference, T service, int trackingCount, int serviceCount, U event)
-
modifiedService
void modifiedService(org.osgi.framework.ServiceReference<S> reference, T service, int trackingCount, U event)
A service tracked by theServiceTracker
has been modified.This method is called when a service being tracked by the
ServiceTracker
has had it properties modified.- Parameters:
reference
- The reference to the service that has been modified.service
- The service object for the specified referenced service.trackingCount
-event
- TODO
-
removedService
void removedService(org.osgi.framework.ServiceReference<S> reference, T service, int trackingCount, U event)
A service tracked by theServiceTracker
has been removed.This method is called after a service is no longer being tracked by the
ServiceTracker
.- Parameters:
reference
- The reference to the service that has been removed.service
- The service object for the specified referenced service.trackingCount
-event
- TODO
-
-