Interface BundleTrackerCustomizer<T>
-
- Type Parameters:
T
- The type of the tracked object.
- All Known Implementing Classes:
BundleHookBundleTracker
,BundleTracker
,InternalRecursiveBundleTracker
@ConsumerType public interface BundleTrackerCustomizer<T>
TheBundleTrackerCustomizer
interface allows aBundleTracker
to customize theBundle
s that are tracked. ABundleTrackerCustomizer
is called when a bundle is being added to aBundleTracker
. TheBundleTrackerCustomizer
can then return an object for the tracked bundle. ABundleTrackerCustomizer
is also called when a tracked bundle is modified or has been removed from aBundleTracker
.The methods in this interface may be called as the result of a
BundleEvent
being received by aBundleTracker
. SinceBundleEvent
s are received synchronously by theBundleTracker
, it is highly recommended that implementations of these methods do not alter bundle states while being synchronized on any object.The
BundleTracker
class is thread-safe. It does not call aBundleTrackerCustomizer
while holding any locks.BundleTrackerCustomizer
implementations must also be thread-safe.- Since:
- 1.4
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description T
addingBundle(Bundle bundle, BundleEvent event)
A bundle is being added to theBundleTracker
.void
modifiedBundle(Bundle bundle, BundleEvent event, T object)
A bundle tracked by theBundleTracker
has been modified.void
removedBundle(Bundle bundle, BundleEvent event, T object)
A bundle tracked by theBundleTracker
has been removed.
-
-
-
Method Detail
-
addingBundle
T addingBundle(Bundle bundle, BundleEvent event)
A bundle is being added to theBundleTracker
.This method is called before a bundle which matched the search parameters of the
BundleTracker
is added to theBundleTracker
. This method should return the object to be tracked for the specifiedBundle
. The returned object is stored in theBundleTracker
and is available from thegetObject
method.- Parameters:
bundle
- TheBundle
being added to theBundleTracker
.event
- The bundle event which caused this customizer method to be called ornull
if there is no bundle event associated with the call to this method.- Returns:
- The object to be tracked for the specified
Bundle
object ornull
if the specifiedBundle
object should not be tracked.
-
modifiedBundle
void modifiedBundle(Bundle bundle, BundleEvent event, T object)
A bundle tracked by theBundleTracker
has been modified.This method is called when a bundle being tracked by the
BundleTracker
has had its state modified.- Parameters:
bundle
- TheBundle
whose state has been modified.event
- The bundle event which caused this customizer method to be called ornull
if there is no bundle event associated with the call to this method.object
- The tracked object for the specified bundle.
-
removedBundle
void removedBundle(Bundle bundle, BundleEvent event, T object)
A bundle tracked by theBundleTracker
has been removed.This method is called after a bundle is no longer being tracked by the
BundleTracker
.- Parameters:
bundle
- TheBundle
that has been removed.event
- The bundle event which caused this customizer method to be called ornull
if there is no bundle event associated with the call to this method.object
- The tracked object for the specified bundle.
-
-