The plugin service keeps a master index of all plugins known to the system. At heart, a plugin is a piece of functionality that extends a program's capabilities. Plugins take many forms; see SciJavaPlugin for details.
The default plugin service discovers available plugins on the classpath.
| void | addPlugin(PluginInfo<?> plugin)
Manually registers a plugin with the plugin service.
|
| <T extends PluginInfo<?>> void |
addPlugins(Collection<T> plugins)
Manually registers plugins with the plugin service.
|
| <PT extends SciJavaPlugin> PT |
createInstance(PluginInfo<PT> info)
Creates an instance of the given plugin.
|
| <PT extends SciJavaPlugin> List<PT> |
createInstances(List<PluginInfo<PT>> infos)
Creates an instance of each of the plugins on the given list.
|
| <PT extends SciJavaPlugin> List<PT> |
createInstancesOfType(Class<PT> type)
Creates one instance each of the available plugins of the given type.
|
| PluginIndex | getIndex()
Gets the index of available plugins.
|
| <P extends SciJavaPlugin> PluginInfo<SciJavaPlugin> |
getPlugin(Class<P> pluginClass)
Gets the first available plugin of the given class, or null if none.
|
| <PT extends SciJavaPlugin,P extends PT> PluginInfo<PT> |
getPlugin(Class<P> pluginClass,
Class<PT> type)
Gets the first available plugin of the given class, or null if none.
|
| PluginInfo<SciJavaPlugin> | getPlugin(String className)
Gets the first available plugin of the given class name, or null if none.
|
| List<PluginInfo<?>> | getPlugins()
Gets the list of known plugins.
|
| <P extends SciJavaPlugin> List<PluginInfo<SciJavaPlugin>> |
getPluginsOfClass(Class<P> pluginClass)
Gets the list of plugins of the given class.
|
| <PT extends SciJavaPlugin,P extends PT> List<PluginInfo<PT>> |
getPluginsOfClass(Class<P> pluginClass,
Class<PT> type)
Gets the list of plugins of the given class.
|
| List<PluginInfo<SciJavaPlugin>> | getPluginsOfClass(String className)
Gets the list of plugins with the given class name.
|
| <PT extends SciJavaPlugin> List<PluginInfo<SciJavaPlugin>> |
getPluginsOfClass(String className,
Class<PT> type)
Gets the list of plugins with the given class name.
|
| <PT extends SciJavaPlugin> List<PluginInfo<PT>> |
getPluginsOfType(Class<PT> type)
Gets the list of plugins of the given type (e.g.,
Service).
|
| void | reloadPlugins()
Rediscovers all plugins available on the classpath.
|
| void | removePlugin(PluginInfo<?> plugin)
Manually unregisters a plugin with the plugin service.
|
| <T extends PluginInfo<?>> void |
removePlugins(Collection<T> plugins)
Manually unregisters plugins with the plugin service.
|
| default <PT extends SciJavaPlugin> void |
sort(List<PT> instances,
Class<PT> type)
Sorts the given list of plugin instances by priority.
|
Most classes will have only a single match, but some special classes (such as ImageJ's LegacyCommand) may match many entries.
Note that this method will result in PluginInfos with matching class names to load their plugin Classes so that they can be compared with the given one.
NB: Classes are matched by strict equality, not assignability; subtypes of the specified class will not match. For this behavior, use getPluginsOfType(Class) on a common parent interface.
Most classes will have only a single match, but some special classes (such as ImageJ's LegacyCommand) may match many entries.
Note that this method will result in PluginInfos with matching class names and types to load their plugin Classes so that they can be compared with the given one.
NB: Classes are matched by strict equality, not assignability; subtypes of the specified class will not match. For this behavior, use getPluginsOfType(Class) on a common parent interface.
Most classes will have only a single match, but some special classes (such as ImageJ's LegacyCommand) may match many entries.
NB: Classes are matched by strict equality, not assignability; subtypes of the specified class will not match. For this behavior, use getPluginsOfType(Class) on a common parent interface.
Most classes will have only a single match, but some special classes (such as ImageJ's LegacyCommand) may match many entries.
NB: Classes are matched by strict equality, not assignability; subtypes of the specified class will not match. For this behavior, use getPluginsOfType(Class) on a common parent interface.
Note that in the case of commands, this method does not do any preprocessing on the command instances, so parameters will not be auto-populated, initializers will not be executed, etc.
If the plugin implements the Contextual interface, the appropriate context is injected. Similarly, if the plugin implements the Prioritized interface, the appropriate priority is injected.
Note that in the case of commands, this method does not do any preprocessing on the command instances, so parameters will not be auto-populated, initializers will not be executed, etc.
If the plugin implements the Contextual interface, the appropriate context is injected. Similarly, if the plugin implements the Prioritized interface, the appropriate priority is injected.
Note that in the case of commands, this method does not do any preprocessing on the command instances, so parameters will not be auto-populated, initializers will not be executed, etc.
Copyright © 2015–2022 SciJava. All rights reserved.