T - refers to your own AbstractPlugin implementation abstract class, or you can use the original alsopublic class PluginRepository<T extends AbstractPlugin>
extends java.lang.Object
| Constructor and Description |
|---|
PluginRepository() |
| Modifier and Type | Method and Description |
|---|---|
java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,T>> |
getAllPlugins()
Gets a
Map view of all plugins. |
T |
getAvailablePlugin(java.lang.String name)
Gets an available plugin by its name.
|
java.util.stream.Stream<T> |
getAvailablePlugins()
Gets a
Stream view of available plugins. |
java.lang.ClassLoader |
getClassLoader(T plugin)
Gets a class loader by the plugin.
|
void |
scan(java.lang.Class<T> pluginClass)
This method scans your classpath for the available plugins that can be initialized.
If you aren't using IDE, you may drop your plugin JARs into "plugins" directory. |
void |
startAll()
Starts all initialized plugins and setting them to installed.
|
void |
stopAll()
Stops all plugins.
|
public final void scan(java.lang.Class<T> pluginClass)
pluginClass - here you shall provide the very same class you provided above as Tpublic final java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,T>> getAllPlugins()
Map view of all plugins.public void startAll()
public void stopAll()
public T getAvailablePlugin(java.lang.String name)
name - the plugin's namepublic final java.util.stream.Stream<T> getAvailablePlugins()
Stream view of available plugins.public final java.lang.ClassLoader getClassLoader(T plugin)
plugin - the plugin