Package com.atlassian.plugin.tracker
Class DefaultPluginModuleTracker<M,T extends ModuleDescriptor<M>>
java.lang.Object
com.atlassian.plugin.tracker.DefaultPluginModuleTracker<M,T>
- All Implemented Interfaces:
PluginModuleTracker<M,T>
public class DefaultPluginModuleTracker<M,T extends ModuleDescriptor<M>>
extends Object
implements PluginModuleTracker<M,T>
Tracks enabled plugin module descriptors, focusing on fast reads
- Since:
- 2.6.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.atlassian.plugin.tracker.PluginModuleTracker
PluginModuleTracker.Customizer<M,T extends ModuleDescriptor<M>> -
Constructor Summary
ConstructorsConstructorDescriptionDefaultPluginModuleTracker(PluginAccessor pluginAccessor, PluginEventManager pluginEventManager, Class<T> moduleDescriptorClass) DefaultPluginModuleTracker(PluginAccessor pluginAccessor, PluginEventManager pluginEventManager, Class<T> moduleDescriptorClass, PluginModuleTracker.Customizer<M, T> pluginModuleTrackerCustomizer) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the tracker.static <M,T extends ModuleDescriptor<M>>
PluginModuleTracker<M,T> create(PluginAccessor pluginAccessor, PluginEventManager pluginEventManager, Class<? extends ModuleDescriptor<?>> moduleDescriptorClass) Static factory method for constructing trackers generically where M is not known.Gets a snapshot of the currently tracked enabled module instancesvoidvoidvoidintsize()
-
Constructor Details
-
DefaultPluginModuleTracker
public DefaultPluginModuleTracker(PluginAccessor pluginAccessor, PluginEventManager pluginEventManager, Class<T> moduleDescriptorClass) -
DefaultPluginModuleTracker
public DefaultPluginModuleTracker(PluginAccessor pluginAccessor, PluginEventManager pluginEventManager, Class<T> moduleDescriptorClass, PluginModuleTracker.Customizer<M, T> pluginModuleTrackerCustomizer)
-
-
Method Details
-
getModuleDescriptors
- Specified by:
getModuleDescriptorsin interfacePluginModuleTracker<M,T extends ModuleDescriptor<M>> - Returns:
- a snapshot of the currently tracked enabled module descriptors
-
getModules
Description copied from interface:PluginModuleTrackerGets a snapshot of the currently tracked enabled module instances- Specified by:
getModulesin interfacePluginModuleTracker<M,T extends ModuleDescriptor<M>> - Returns:
- The module instances
-
size
public int size()- Specified by:
sizein interfacePluginModuleTracker<M,T extends ModuleDescriptor<M>> - Returns:
- The number of module descriptors currently tracked. Should only be used for reporting purposes as it only reflects the size at exactly the calling time.
-
close
public void close()Description copied from interface:PluginModuleTrackerCloses the tracker. Ensure you call this, or you may cause a memory leak.- Specified by:
closein interfacePluginModuleTracker<M,T extends ModuleDescriptor<M>>
-
onPluginModuleEnabled
-
onPluginModuleDisabled
-
onPluginDisabled
-
create
public static <M,T extends ModuleDescriptor<M>> PluginModuleTracker<M,T> create(PluginAccessor pluginAccessor, PluginEventManager pluginEventManager, Class<? extends ModuleDescriptor<?>> moduleDescriptorClass) Static factory method for constructing trackers generically where M is not known.- Type Parameters:
M- The module class, generically inferred.T- The module descriptor class.- Parameters:
pluginAccessor- For getting the enabled descriptors of a certain type.pluginEventManager- For being told about changes to the enabled plugins.moduleDescriptorClass- The type of module descriptors we are interested in.- Returns:
- a PluginModuleTracker useful for fast and upd to date caching of the currently enabled module descriptors.
- Since:
- 2.7.0
-