Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.jfree.report.modules
Class AbstractModule  view AbstractModule download AbstractModule.java

java.lang.Object
  extended byorg.jfree.report.modules.DefaultModuleInfo
      extended byorg.jfree.report.modules.AbstractModule
All Implemented Interfaces:
Module, ModuleInfo

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". This file is no real property file, it follows a more complex rule set.

Lines starting with '#' are considered comments. Section headers start at the beginning of the line, section properties are indented with at least one whitespace.

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

 module-info:
   name: xls-export-gui
   producer: The JFreeReport project - www.jfree.org/jfreereport
   description: A dialog component for the Excel table export.
   version.major: 0
   version.minor: 84
   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.

 depends:
   module: org.jfree.report.modules.output.table.xls.XLSTableModule
   version.major: 0
   version.minor: 84
 

The property module references to the module implementation of the module package.


Nested Class Summary
private static class AbstractModule.ReaderHelper
          The reader helper provides a pushback interface for the reader to read and buffer complete lines.
 
Field Summary
private  java.lang.String description
          A short description of the module.
private  java.lang.String name
          The name of the module.
private  ModuleInfo[] optionalModules
          The list of optional modules.
private  java.lang.String producer
          The name of the module producer.
private  ModuleInfo[] requiredModules
          The list of required modules.
private  java.lang.String subsystem
          The modules subsystem.
 
Fields inherited from class org.jfree.report.modules.DefaultModuleInfo
 
Constructor Summary
AbstractModule()
          Default Constructor.
 
Method Summary
 void configure()
          Configures the module by loading the configuration properties and adding them to the package configuration.
 java.lang.String getDescription()
          Returns the module description.
 java.lang.String getName()
          Returns the name of this module.
 ModuleInfo[] getOptionalModules()
          Returns a copy of the required modules array.
 java.lang.String getProducer()
          Returns the producer of the module.
 ModuleInfo[] getRequiredModules()
          Returns a copy of the required modules array.
 java.lang.String getSubSystem()
          Returns the modules subsystem.
protected static boolean isClassLoadable(java.lang.String name)
          Tries to load a class to indirectly check for the existence of a certain library.
private  boolean isNextLineValueLine(AbstractModule.ReaderHelper reader)
          Checks, whether the next line in the reader is a value line.
protected  void loadModuleInfo()
          Loads the default module description from the file "module.properties".
protected  void loadModuleInfo(java.io.InputStream in)
          Loads the module descriptiong from the given input stream.
private  java.lang.String parseKey(java.lang.String line)
          Parses an string to find the key section of the line.
private  java.lang.String parseValue(java.lang.String line)
          Parses the value section of the given line.
protected  void performExternalInitialize(java.lang.String classname)
          Tries to load an module initializer and uses this initializer to initialize the module.
private  DefaultModuleInfo readExternalModule(AbstractModule.ReaderHelper reader)
          Reads an external module description.
private  void readModuleInfo(AbstractModule.ReaderHelper reader)
          Reads the module definition header.
private  java.lang.String readValue(AbstractModule.ReaderHelper reader, java.lang.String firstLine)
          Reads a multiline value the stream.
protected  void setDescription(java.lang.String description)
          Defines the description of the module.
protected  void setName(java.lang.String name)
          Defines the name of the module.
 void setOptionalModules(ModuleInfo[] optionalModules)
          Defines the optional module descriptions for this module.
protected  void setProducer(java.lang.String producer)
          Defines the producer of the module.
protected  void setRequiredModules(ModuleInfo[] requiredModules)
          Defines the required module descriptions for this module.
protected  void setSubSystem(java.lang.String name)
          Defines the subsystem name for this module.
 java.lang.String toString()
          Returns a string representation of this module.
 
Methods inherited from class org.jfree.report.modules.DefaultModuleInfo
equals, getMajorVersion, getMinorVersion, getModuleClass, getPatchLevel, hashCode, setMajorVersion, setMinorVersion, setModuleClass, setPatchLevel
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jfree.report.modules.Module
initialize
 
Methods inherited from interface org.jfree.report.modules.ModuleInfo
getMajorVersion, getMinorVersion, getModuleClass, getPatchLevel
 

Field Detail

requiredModules

private ModuleInfo[] requiredModules
The list of required modules.


optionalModules

private ModuleInfo[] optionalModules
The list of optional modules.


name

private java.lang.String name
The name of the module.


description

private java.lang.String description
A short description of the module.


producer

private java.lang.String producer
The name of the module producer.


subsystem

private java.lang.String subsystem
The modules subsystem.

Constructor Detail

AbstractModule

public AbstractModule()
Default Constructor.

Method Detail

loadModuleInfo

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


loadModuleInfo

protected void loadModuleInfo(java.io.InputStream in)
                       throws ModuleInitializeException
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).


readValue

private java.lang.String readValue(AbstractModule.ReaderHelper reader,
                                   java.lang.String firstLine)
                            throws java.io.IOException
Reads a multiline value the stream. This will read the stream until a new key is found or the end of the file is reached.


isNextLineValueLine

private boolean isNextLineValueLine(AbstractModule.ReaderHelper reader)
                             throws java.io.IOException
Checks, whether the next line in the reader is a value line.


readModuleInfo

private void readModuleInfo(AbstractModule.ReaderHelper reader)
                     throws java.io.IOException
Reads the module definition header. This header contains information about the module itself.


parseKey

private java.lang.String parseKey(java.lang.String line)
Parses an string to find the key section of the line. This section ends with an colon.


parseValue

private java.lang.String parseValue(java.lang.String line)
Parses the value section of the given line.


readExternalModule

private DefaultModuleInfo readExternalModule(AbstractModule.ReaderHelper reader)
                                      throws java.io.IOException
Reads an external module description. This describes either an optional or a required module.


getName

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

Specified by:
getName in interface Module

setName

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


getDescription

public java.lang.String getDescription()
Returns the module description.

Specified by:
getDescription in interface Module

setDescription

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


getProducer

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

Specified by:
getProducer in interface Module

setProducer

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


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.

Specified by:
getRequiredModules in interface Module

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.

Specified by:
getOptionalModules in interface Module

setRequiredModules

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


setOptionalModules

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


toString

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

Overrides:
toString in class DefaultModuleInfo

isClassLoadable

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


configure

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

Specified by:
configure in interface Module

performExternalInitialize

protected void performExternalInitialize(java.lang.String classname)
                                  throws ModuleInitializeException
Tries to load an module initializer and uses this initializer to initialize the module.


getSubSystem

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

Specified by:
getSubSystem in interface Module

setSubSystem

protected void setSubSystem(java.lang.String name)
Defines the subsystem name for this module.