org.pentaho.reporting.libraries.base.boot

Class AbstractModule

public abstract class AbstractModule extends DefaultModuleInfo implements Module

The abstract module provides a default implementation of the module interface.

The module can be specified in an external property file. The file name of this specification defaults to "module.properties".

The first and mandatory section is always the module info and contains the basic module properties like name, version and a short description.

 module.name: xls-export-gui
 module.producer: The JFreeReport project - www.jfree.org/jfreereport
 module.description: A dialog component for the Excel table export.
 module.version.major: 0
 module.version.minor: 84
 module.version.patchlevel: 0
 
The properties name, producer and description are simple strings. They may span multiple lines, but may not contain a colon (':'). The version properties are integer values.

This section may be followed by one or more "depends" sections. These sections describe the base modules that are required to be active to make this module work. The package manager will enforce this policy and will deactivate this module if one of the base modules is missing.

 dependency.module-id.module: org.pentaho.reporting.engine.classic.core.modules.output.table.xls.XLSTableModule
 dependency.module-id.version.major: 0
 dependency.module-id.version.minor: 84
 

The property *.module references to the module implementation of the module package. The module-id is a per-module-definition-unique identifier and it is recommended to set it to the referenced module's name for documentary purposes.

Author: Thomas Morgner

Constructor Summary
protected AbstractModule()
Default Constructor.
Method Summary
voidconfigure(SubSystem subSystem)
Configures the module by loading the configuration properties and adding them to the package configuration.
StringgetDescription()
Returns the module description.
StringgetName()
Returns the name of this module.
ModuleInfo[]getOptionalModules()
Returns a copy of the required modules array.
StringgetProducer()
Returns the producer of the module.
ModuleInfo[]getRequiredModules()
Returns a copy of the required modules array.
StringgetSubSystem()
Returns the modules subsystem.
protected static booleanisClassLoadable(String name, Class context)
Tries to load a class to indirectly check for the existence of a certain library.
protected voidloadModuleInfo()
Loads the default module description from the file "module.properties".
protected voidloadModuleInfo(InputStream in)
Loads the module descriptiong from the given input stream.
protected voidperformExternalInitialize(String classname)
Tries to load an module initializer and uses this initializer to initialize the module.
protected voidperformExternalInitialize(String classname, Class context)
Executes an weakly referenced external initializer.
protected voidsetDescription(String description)
Defines the description of the module.
protected voidsetName(String name)
Defines the name of the module.
voidsetOptionalModules(ModuleInfo[] optionalModules)
Defines the optional module descriptions for this module.
protected voidsetProducer(String producer)
Defines the producer of the module.
protected voidsetRequiredModules(ModuleInfo[] requiredModules)
Defines the required module descriptions for this module.
protected voidsetSubSystem(String name)
Defines the subsystem name for this module.
StringtoString()
Returns a string representation of this module.

Constructor Detail

AbstractModule

protected AbstractModule()
Default Constructor.

Method Detail

configure

public void configure(SubSystem subSystem)
Configures the module by loading the configuration properties and adding them to the package configuration.

Parameters: subSystem the subsystem.

getDescription

public String getDescription()
Returns the module description.

Returns: the description of the module.

See Also: getDescription

getName

public String getName()
Returns the name of this module.

Returns: the module name

See Also: getName

getOptionalModules

public ModuleInfo[] getOptionalModules()
Returns a copy of the required modules array. This array contains all description of the optional modules that may improve the modules functonality.

Returns: an array of all required modules.

See Also: getRequiredModules

getProducer

public String getProducer()
Returns the producer of the module.

Returns: the producer.

See Also: getProducer

getRequiredModules

public ModuleInfo[] getRequiredModules()
Returns a copy of the required modules array. This array contains all description of the modules that need to be present to make this module work.

Returns: an array of all required modules.

See Also: getRequiredModules

getSubSystem

public String getSubSystem()
Returns the modules subsystem. If this module is not part of an subsystem then return the modules name, but never null.

Returns: the name of the subsystem.

isClassLoadable

protected static boolean isClassLoadable(String name, Class context)
Tries to load a class to indirectly check for the existence of a certain library.

Parameters: name the name of the library class. context the context class to get a classloader from.

Returns: true, if the class could be loaded, false otherwise.

loadModuleInfo

protected void loadModuleInfo()
Loads the default module description from the file "module.properties". This file must be in the same package as the implementing class.

Throws: ModuleInitializeException if an error occurs.

loadModuleInfo

protected void loadModuleInfo(InputStream in)
Loads the module descriptiong from the given input stream. The module description must conform to the rules define in the class description. The file must be encoded with "ISO-8859-1" (like property files).

Parameters: in the input stream from where to read the file

Throws: ModuleInitializeException if an error occurs.

performExternalInitialize

protected void performExternalInitialize(String classname)

Deprecated: Use the method that provides a class-context instead.

Tries to load an module initializer and uses this initializer to initialize the module.

Parameters: classname the class name of the initializer.

Throws: ModuleInitializeException if an error occures

performExternalInitialize

protected void performExternalInitialize(String classname, Class context)
Executes an weakly referenced external initializer. The initializer will be loaded using reflection and will be executed once. If the initializing fails with any exception, the module will become unavailable.

Parameters: classname the classname of the ModuleInitializer implementation context the class-loader context from where to load the module's classes.

Throws: ModuleInitializeException if an error occured or the initializer could not be found.

setDescription

protected void setDescription(String description)
Defines the description of the module.

Parameters: description the module's desciption.

setName

protected void setName(String name)
Defines the name of the module.

Parameters: name the module name.

setOptionalModules

public void setOptionalModules(ModuleInfo[] optionalModules)
Defines the optional module descriptions for this module.

Parameters: optionalModules the optional modules.

setProducer

protected void setProducer(String producer)
Defines the producer of the module.

Parameters: producer the producer.

setRequiredModules

protected void setRequiredModules(ModuleInfo[] requiredModules)
Defines the required module descriptions for this module.

Parameters: requiredModules the required modules.

setSubSystem

protected void setSubSystem(String name)
Defines the subsystem name for this module. If no sub-system name is set, the sub-system defaults to the module's name.

Parameters: name the new name of the subsystem.

toString

public String toString()
Returns a string representation of this module.

Returns: the string representation of this module for debugging purposes.

See Also: Object#toString()