public class PluginManager
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
PluginManager.PluginClassLoader |
| Constructor and Description |
|---|
PluginManager(ResourceManager resourceManager) |
| Modifier and Type | Method and Description |
|---|---|
<T extends Plugin> |
add(PluginPath<T> path,
java.lang.Class<T> cls) |
<T extends Plugin> |
add(PluginPath<T> path,
T singleton) |
<T extends Plugin,U extends T> |
addDefault(java.lang.Class<T> cls,
java.lang.Class<U> implClass) |
<T extends Plugin,U extends T> |
addDefault(java.lang.Class<T> cls,
U singleton) |
<T extends Plugin> |
createInstance(PluginPath<T> pluginPath,
java.lang.Object obj,
java.lang.Object... args) |
PluginManager |
from(Resources resources) |
<T extends Plugin> |
get(PluginPath<T> path,
java.lang.Object... args) |
<T extends Plugin> |
get(PluginPaths<T> paths,
java.lang.Object... args) |
protected java.util.Optional |
getDefaultPlugin(java.lang.Class<?> type) |
<T extends Plugin> |
getEntry(PluginPath<T> path) |
java.net.URLClassLoader |
getPluginClassLoader() |
Resources |
getResources() |
void |
inject(java.lang.Object instance,
java.lang.Object... args) |
void |
loadPlugins(java.lang.String[] directories) |
<T extends Plugin> |
remove(PluginPath<T> path) |
java.lang.Object |
removeDefault(java.lang.Class cls) |
void |
setResources(Resources resources) |
java.util.Map<PluginPath,PluginEntry> |
startsWith(PluginPath<?> path) |
java.util.Map<PluginPath,PluginEntry> |
startsWith(PluginPaths<?> paths) |
public PluginManager(ResourceManager resourceManager)
public PluginManager from(Resources resources)
public Resources getResources()
public void setResources(Resources resources)
public void loadPlugins(java.lang.String[] directories)
public java.net.URLClassLoader getPluginClassLoader()
protected java.util.Optional getDefaultPlugin(java.lang.Class<?> type)
public java.util.Map<PluginPath,PluginEntry> startsWith(PluginPath<?> path)
public java.util.Map<PluginPath,PluginEntry> startsWith(PluginPaths<?> paths)
public <T extends Plugin> java.util.Optional<PluginEntry> getEntry(PluginPath<T> path)
public <T extends Plugin> java.util.Optional<T> get(PluginPaths<T> paths, java.lang.Object... args)
public <T extends Plugin> T createInstance(PluginPath<T> pluginPath, java.lang.Object obj, java.lang.Object... args)
public void inject(java.lang.Object instance,
java.lang.Object... args)
public <T extends Plugin> java.util.Optional<T> get(PluginPath<T> path, java.lang.Object... args)
public <T extends Plugin> PluginEntry<T> add(PluginPath<T> path, java.lang.Class<T> cls)
public <T extends Plugin> PluginEntry<T> add(PluginPath<T> path, T singleton)
public <T extends Plugin> java.lang.Object remove(PluginPath<T> path)
public <T extends Plugin,U extends T> void addDefault(java.lang.Class<T> cls, U singleton)
public <T extends Plugin,U extends T> void addDefault(java.lang.Class<T> cls, java.lang.Class<U> implClass)
public java.lang.Object removeDefault(java.lang.Class cls)