public abstract class AbstractPluginLoader<T>
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
private class |
AbstractPluginLoader.PluginInitInfo
Internal class to hold onto initialization info so that it can be initialized
after it is registered.
|
| Modifier and Type | Field and Description |
|---|---|
static org.slf4j.Logger |
log |
private boolean |
preRegister |
private boolean |
requireName |
private java.lang.String |
type |
| Constructor and Description |
|---|
AbstractPluginLoader(java.lang.String type) |
AbstractPluginLoader(java.lang.String type,
boolean preRegister,
boolean requireName) |
| Modifier and Type | Method and Description |
|---|---|
protected T |
create(ResourceLoader loader,
java.lang.String name,
java.lang.String className,
org.w3c.dom.Node node)
Create a plugin from an XML configuration.
|
protected java.lang.String[] |
getDefaultPackages()
Where to look for classes
|
protected abstract void |
init(T plugin,
org.w3c.dom.Node node)
Initialize the plugin.
|
T |
load(ResourceLoader loader,
org.w3c.dom.NodeList nodes)
Given a NodeList from XML in the form:
|
T |
loadSingle(ResourceLoader loader,
org.w3c.dom.Node node)
Given a NodeList from XML in the form:
|
protected abstract T |
register(java.lang.String name,
T plugin)
Register a plugin with a given name.
|
public static org.slf4j.Logger log
private final java.lang.String type
private final boolean preRegister
private final boolean requireName
public AbstractPluginLoader(java.lang.String type,
boolean preRegister,
boolean requireName)
type - is the 'type' name included in error messages.preRegister - if true, this will first register all Plugins, then it will initialize them.public AbstractPluginLoader(java.lang.String type)
protected java.lang.String[] getDefaultPackages()
protected T create(ResourceLoader loader, java.lang.String name, java.lang.String className, org.w3c.dom.Node node) throws java.lang.Exception
name - - The registered name. In the above example: "name1"className - - class name for requested plugin. In the above example: "solr.ClassName"node - - the XML node defining this pluginjava.lang.Exceptionprotected abstract T register(java.lang.String name, T plugin) throws java.lang.Exception
java.lang.Exceptionprotected abstract void init(T plugin, org.w3c.dom.Node node) throws java.lang.Exception
plugin - - the plugin to initializenode - - the XML node defining this pluginjava.lang.Exceptionpublic T load(ResourceLoader loader, org.w3c.dom.NodeList nodes)
public T loadSingle(ResourceLoader loader, org.w3c.dom.Node node)