Base class for loader plugins.
Loader plugins are used to interpret single XML tags in a configuration file.
The Framework queries all available plugin types from the ClassFactory at startup and registers them at the ConfigurationLoader.
On registration, the ConfigurationLoader inspects each plugin for the configuration tags it handles and whether it needs to be informed of document start/end. In order to avoid the unconditional need for instantiation, these properties are specified through the plugin's object meta data registered with the ClassFactory using MIRA_META_OBJECT. The loader reads the following properties:
- 'StartEndDocument' : if 'true', the plugin is instantiated on registration and its startDocument()/endDocument() methods are called at start/end of document.
- single 'Tag' or sequence 'Tag0', 'Tag1', ... (consecutive, starting at 0) : when one of these tags is read, the plugin is instantiated and its parseNode() method called.
- 'AlwaysInstantiate' : if 'true', the plugin is instantiated on registration, regardless of the other properties.
Examples:
("Tag", "namespace")
("StartEndDocument", "true"))
("Tag0", "initial-workspace")
("Tag1", "initial_workspace")
("AlwaysInstantiate", "true"))
Each plugin is instantiated (by each loader) once at most, and then stored and used from that point onward. If neither StartEndDocument nor AlwaysInstantiate is true, the plugin is only instantiated when a respective tag is actually read in the configuration.