org.outerj.xreporter.report.instance
Class ReportImpl

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.outerj.xreporter.report.instance.ReportImpl
All Implemented Interfaces:
org.apache.avalon.framework.component.Composable, ExecutionContext, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.logger.LogEnabled, Report

public class ReportImpl
extends org.apache.avalon.framework.logger.AbstractLogEnabled
implements org.apache.avalon.framework.activity.Initializable, Report, ExecutionContext, org.apache.avalon.framework.component.Composable

This class represents a Report instance. Users must use the ReportManager.getReport(java.lang.String, org.outerj.xreporter.user.User) method to get access the instance.


Nested Class Summary
 class ReportImpl.ReportExpressionContext
          ExpressionContext that resolves variables to parameter values.
 
Field Summary
protected  Columns columns
           
protected  DataSource dataSource
           
protected static java.lang.String DATASOURCE_ID_ATTR
           
protected static java.lang.String DATASOURCE_NAME_EL
           
protected  DataSourceManager dataSourceManager
           
protected  ExpressionContext expressionContext
           
protected  java.lang.String id
           
protected static java.lang.String INFO_EL
           
protected  long lastAccessed
           
protected static java.lang.String LISTENER_EL
           
protected static java.lang.String LISTENER_HOST_EL
           
protected static java.lang.String LISTENER_NAME_EL
           
protected static java.lang.String LISTENER_PORT_EL
           
protected  org.apache.avalon.excalibur.concurrent.Mutex mutex
          This mutex is used to check that no two parties can use the report instance at the same time.
protected  OrderBy orderBy
           
protected  Qbe qbe
           
protected static java.lang.String REPORT_DEFINITION_ID_ATTR
           
protected static java.lang.String REPORT_DESCRIPTION_EL
           
protected static java.lang.String REPORT_EL
           
protected static java.lang.String REPORT_INSTANCE_ID_ATTR
           
protected static java.lang.String REPORT_NAME_EL
           
protected  ReportDefinition reportDefinition
           
protected  ResourceHandle resourceHandle
           
protected  java.util.List steps
           
protected  java.util.HashMap stepsByName
           
protected static java.lang.String SUPPORTS_ORDERBY_EL
           
protected static java.lang.String SUPPORTS_QBE_EL
           
protected static java.lang.String TIME_EL
           
protected  User user
          The user currently using this report
protected  UserEntryStore userEntryStore
           
 
Constructor Summary
ReportImpl(java.lang.String id, ReportDefinition reportDefinition, DataSource dataSource, ResourceHandle resourceHandle)
          Important: any Avalon interfaces implemented by this object should be respected.
 
Method Summary
 Report acquire(long msecs, User user)
          Acquire a lock on this report.
 Report acquire(User user)
          Acquire a lock on this report.
 boolean allStepsComplete()
          Returns true if all (interaction) steps have been completed.
protected  void autoRunSteps()
          Checks if the current step only has an execute-part (and no interaction), and if so runs that execute part, and keeps doing this until it is at the last (non-interactive) step.
 void compose(org.apache.avalon.framework.component.ComponentManager componentManager)
           
 void dispose()
          Cleans up resources used by this report.
 void generateColumns(org.xml.sax.ContentHandler contentHandler)
           
 void generateOrderByChoices(org.xml.sax.ContentHandler contentHandler)
           
 void generateQbe(org.xml.sax.ContentHandler contentHandler)
           
protected  void generateReportFooterSaxFragment(org.xml.sax.ContentHandler contentHandler)
          Closes the xr:report element and ends the document started by generateReportHeaderStartSaxFragment(org.xml.sax.ContentHandler).
protected  void generateReportHeaderStartSaxFragment(org.xml.sax.ContentHandler contentHandler)
          Generate the beginning of a report header, this leaves the xr:report and xr:info elements open.
protected  void generateReportHeaderStopSaxFragment(org.xml.sax.ContentHandler contentHandler)
          Closes the xr:info element started by generateReportHeaderStartSaxFragment(org.xml.sax.ContentHandler).
 void generateSaxForOutput(org.xml.sax.ContentHandler contentHandler, int chunkOffset, int chunkLength)
           
 void generateSaxForStep(org.xml.sax.ContentHandler contentHandler, java.lang.String name)
          Generates SAX events containing all information needed to display a form for completing the interaction of a step.
protected  void generateStepsInfoSaxFragment(org.xml.sax.ContentHandler contentHandler)
           
 void generateUrl(org.xml.sax.ContentHandler contentHandler)
          Generates some XML containing a /reports URL with all necessary parameters to recreate the report to its current state.
 Columns getColumns()
          Provides access to the Columns configuration.
protected  Step getCurrentStep()
           
 java.lang.String getCurrentStepName()
           
 DataSource getDataSource()
          Gets the data source of the report instance.
 DataSourceManager getDataSourceManager()
          Gets the data source manager.
 ExpressionContext getExpressionContext()
          Gets the context for evaluating expressions.
 java.lang.String getHostName()
          Return the host name of the server instance this report is running on.
 java.lang.String getId()
           
 InputField getInputField(java.lang.String name)
          If the ExecutionContext is a Step, then this will only provide access to InputField's of the current or previous steps.
 long getLastAccessed()
           
 java.lang.String getListenerName()
          Return the logical name of the server instance this report is running on.
 java.lang.String getOrderBySql()
          Returns the sql for the currently selected orderby choice, or null if no orderby is configured.
 int getPort()
          Return the port number of the server instance this report is running on.
 Qbe getQbe()
          Provides access to the QBE (Query By Example) configuration.
 ReportDefinition getReportDefinition()
           
 java.lang.String getReportDefinitionId()
           
 java.lang.String getReportId()
          Returns the id of the report instance.
 ResourceHandle getResourceHandle()
           
 ReportState getState()
          Returns an object containing all user-specified state of the report.
 Step getStep(java.lang.String stepName)
           
 java.lang.String getTemporaryTableName(java.lang.String name)
          Constructs a temporary table name.
 User getUser()
          Gets the user currently using this report.
 UserEntryStore getUserEntryStore()
           
 void initialize()
           
 void registerTemporaryTableName(java.lang.String name)
          Registers a temporary table name for automatic cleanup.
 void release()
           
 void resetColumns()
           
protected  void resetFromStep(Step step)
          Resets all report state starting from the given step
 void resetFromStep(java.lang.String stepName)
          Resets all report state starting from (and including) the step whose name is giving as a parameter.
 void resetLastAccessed()
           
 void resetQbe()
           
 void restoreState(ReportState reportState)
          Applies the state from the given reportState back to this report.
 void setCustomOrderBy(java.util.Map values, ResourceHandle resourceHandle)
          Defines custom orderby settings.
 void setHostName(java.lang.String name, boolean disclose)
           
 void setListenerName(java.lang.String name)
           
 void setOrderBy(java.lang.String id)
          Sets the current orderby configuration to a default defined in the report definition.
 void setPort(int port, boolean disclose)
           
 void setQbeOrientation(java.lang.String orientation)
           
 void submitColumns(java.util.Map values)
           
 boolean submitQbe(java.util.Map values)
           
 boolean submitStep(java.lang.String stepName, java.util.Map values)
          Submit (user input) values to fill the parameters and conditions in this step.
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

reportDefinition

protected ReportDefinition reportDefinition

steps

protected java.util.List steps

stepsByName

protected java.util.HashMap stepsByName

id

protected java.lang.String id

dataSource

protected DataSource dataSource

dataSourceManager

protected DataSourceManager dataSourceManager

userEntryStore

protected UserEntryStore userEntryStore

mutex

protected org.apache.avalon.excalibur.concurrent.Mutex mutex
This mutex is used to check that no two parties can use the report instance at the same time.


lastAccessed

protected long lastAccessed

orderBy

protected OrderBy orderBy

qbe

protected Qbe qbe

columns

protected Columns columns

resourceHandle

protected ResourceHandle resourceHandle

expressionContext

protected ExpressionContext expressionContext

user

protected User user
The user currently using this report


REPORT_EL

protected static final java.lang.String REPORT_EL
See Also:
Constant Field Values

INFO_EL

protected static final java.lang.String INFO_EL
See Also:
Constant Field Values

LISTENER_EL

protected static final java.lang.String LISTENER_EL
See Also:
Constant Field Values

LISTENER_NAME_EL

protected static final java.lang.String LISTENER_NAME_EL
See Also:
Constant Field Values

LISTENER_HOST_EL

protected static final java.lang.String LISTENER_HOST_EL
See Also:
Constant Field Values

LISTENER_PORT_EL

protected static final java.lang.String LISTENER_PORT_EL
See Also:
Constant Field Values

DATASOURCE_NAME_EL

protected static final java.lang.String DATASOURCE_NAME_EL
See Also:
Constant Field Values

REPORT_NAME_EL

protected static final java.lang.String REPORT_NAME_EL
See Also:
Constant Field Values

REPORT_DESCRIPTION_EL

protected static final java.lang.String REPORT_DESCRIPTION_EL
See Also:
Constant Field Values

TIME_EL

protected static final java.lang.String TIME_EL
See Also:
Constant Field Values

SUPPORTS_QBE_EL

protected static final java.lang.String SUPPORTS_QBE_EL
See Also:
Constant Field Values

SUPPORTS_ORDERBY_EL

protected static final java.lang.String SUPPORTS_ORDERBY_EL
See Also:
Constant Field Values

REPORT_INSTANCE_ID_ATTR

protected static final java.lang.String REPORT_INSTANCE_ID_ATTR
See Also:
Constant Field Values

REPORT_DEFINITION_ID_ATTR

protected static final java.lang.String REPORT_DEFINITION_ID_ATTR
See Also:
Constant Field Values

DATASOURCE_ID_ATTR

protected static final java.lang.String DATASOURCE_ID_ATTR
See Also:
Constant Field Values
Constructor Detail

ReportImpl

public ReportImpl(java.lang.String id,
                  ReportDefinition reportDefinition,
                  DataSource dataSource,
                  ResourceHandle resourceHandle)
Important: any Avalon interfaces implemented by this object should be respected.

Method Detail

compose

public void compose(org.apache.avalon.framework.component.ComponentManager componentManager)
             throws org.apache.avalon.framework.component.ComponentException
Specified by:
compose in interface org.apache.avalon.framework.component.Composable
Throws:
org.apache.avalon.framework.component.ComponentException

setListenerName

public void setListenerName(java.lang.String name)

setHostName

public void setHostName(java.lang.String name,
                        boolean disclose)

setPort

public void setPort(int port,
                    boolean disclose)

getListenerName

public java.lang.String getListenerName()
Description copied from interface: ExecutionContext
Return the logical name of the server instance this report is running on.

Specified by:
getListenerName in interface ExecutionContext

getHostName

public java.lang.String getHostName()
Description copied from interface: ExecutionContext
Return the host name of the server instance this report is running on.

Specified by:
getHostName in interface ExecutionContext

getPort

public int getPort()
Description copied from interface: ExecutionContext
Return the port number of the server instance this report is running on.

Specified by:
getPort in interface ExecutionContext

getId

public java.lang.String getId()
Specified by:
getId in interface Report
See Also:
Report.getId()

getReportDefinition

public ReportDefinition getReportDefinition()

initialize

public void initialize()
                throws java.lang.Exception
Specified by:
initialize in interface org.apache.avalon.framework.activity.Initializable
Throws:
java.lang.Exception

submitStep

public boolean submitStep(java.lang.String stepName,
                          java.util.Map values)
                   throws UnknownStepNameException,
                          WrongStateException,
                          ExecuteException,
                          UserEntryStoreException
Description copied from interface: Report
Submit (user input) values to fill the parameters and conditions in this step. If all parameters and condities are filled in correctly, the execution-part of this step will be executed and true will be returned. Otherwise false will be returned, in which case Report.generateSaxForStep(org.xml.sax.ContentHandler, java.lang.String) should be called to get a list of all parameters and conditions with their validation errors.

If the report was already in a further state (i.e. some of the next steps were already completed, or the report was already in the output state), then all the state from this step on will be reset.

Specified by:
submitStep in interface Report
Parameters:
values - a Map containing string keys and values
Throws:
UnknownStepNameException
WrongStateException
ExecuteException
UserEntryStoreException
See Also:
Report.submitStep(java.lang.String, java.util.Map)

autoRunSteps

protected void autoRunSteps()
                     throws ExecuteException,
                            UserEntryStoreException
Checks if the current step only has an execute-part (and no interaction), and if so runs that execute part, and keeps doing this until it is at the last (non-interactive) step.

Throws:
ExecuteException
UserEntryStoreException

resetFromStep

public void resetFromStep(java.lang.String stepName)
                   throws UnknownStepNameException,
                          WrongStateException,
                          ExecuteException,
                          UserEntryStoreException
Description copied from interface: Report
Resets all report state starting from (and including) the step whose name is giving as a parameter. This is also done as part of Report.submitStep(java.lang.String, java.util.Map).

Specified by:
resetFromStep in interface Report
Throws:
UnknownStepNameException
WrongStateException
ExecuteException
UserEntryStoreException
See Also:
Report.resetFromStep(java.lang.String)

resetFromStep

protected void resetFromStep(Step step)
Resets all report state starting from the given step


generateSaxForStep

public void generateSaxForStep(org.xml.sax.ContentHandler contentHandler,
                               java.lang.String name)
                        throws UnknownStepNameException,
                               org.xml.sax.SAXException,
                               java.lang.Exception
Description copied from interface: Report
Generates SAX events containing all information needed to display a form for completing the interaction of a step. This method does not check if all previous steps are already completed, or if the given step does have interaction. This method will usually be called after Report.getCurrentStepName().

Specified by:
generateSaxForStep in interface Report
Throws:
UnknownStepNameException
org.xml.sax.SAXException
java.lang.Exception
See Also:
Report.generateSaxForStep(org.xml.sax.ContentHandler, java.lang.String)

allStepsComplete

public boolean allStepsComplete()
                         throws ExecuteException,
                                UserEntryStoreException
Returns true if all (interaction) steps have been completed.

Throws:
ExecuteException
UserEntryStoreException

generateSaxForOutput

public void generateSaxForOutput(org.xml.sax.ContentHandler contentHandler,
                                 int chunkOffset,
                                 int chunkLength)
                          throws java.lang.Exception
Specified by:
generateSaxForOutput in interface Report
Throws:
java.lang.Exception
See Also:
Report.generateSaxForOutput(org.xml.sax.ContentHandler, int, int)

setOrderBy

public void setOrderBy(java.lang.String id)
                throws WrongStateException,
                       UnknownOrderByIdException,
                       ExecuteException,
                       UnsupportedFeatureException,
                       UserEntryStoreException
Description copied from interface: Report
Sets the current orderby configuration to a default defined in the report definition.

Specified by:
setOrderBy in interface Report
Parameters:
id - the id of the orderby as defined in the report definition
Throws:
UnknownOrderByIdException - when the given orderById is invalid.
WrongStateException
ExecuteException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.setOrderBy(java.lang.String)

setCustomOrderBy

public void setCustomOrderBy(java.util.Map values,
                             ResourceHandle resourceHandle)
                      throws WrongStateException,
                             ExecuteException,
                             UnsupportedFeatureException,
                             UserEntryStoreException
Description copied from interface: Report
Defines custom orderby settings. This method assumes that the input is correct, meaning that the map should contain valid values.

Specified by:
setCustomOrderBy in interface Report
Parameters:
values - map containing keys like orderby.1, orderby.2, and so on with as value the column name on which to be sorted (as it should appear in the sql query).
Throws:
WrongStateException
ExecuteException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.setCustomOrderBy(java.util.Map, org.outerj.xreporter.resource.ResourceHandle)

generateOrderByChoices

public void generateOrderByChoices(org.xml.sax.ContentHandler contentHandler)
                            throws org.xml.sax.SAXException,
                                   UnsupportedFeatureException,
                                   WrongStateException,
                                   ExecuteException,
                                   UserEntryStoreException
Specified by:
generateOrderByChoices in interface Report
Throws:
org.xml.sax.SAXException
UnsupportedFeatureException
WrongStateException
ExecuteException
UserEntryStoreException
See Also:
Report.generateOrderByChoices(org.xml.sax.ContentHandler)

generateQbe

public void generateQbe(org.xml.sax.ContentHandler contentHandler)
                 throws org.xml.sax.SAXException,
                        UnsupportedFeatureException,
                        ExecuteException,
                        WrongStateException,
                        java.lang.Exception
Specified by:
generateQbe in interface Report
Throws:
org.xml.sax.SAXException
UnsupportedFeatureException
ExecuteException
WrongStateException
java.lang.Exception
See Also:
Report.generateQbe(org.xml.sax.ContentHandler)

submitQbe

public boolean submitQbe(java.util.Map values)
                  throws WrongStateException,
                         ExecuteException,
                         UnsupportedFeatureException,
                         UserEntryStoreException
Specified by:
submitQbe in interface Report
Returns:
true if succesfull
Throws:
WrongStateException
ExecuteException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.submitQbe(java.util.Map)

resetQbe

public void resetQbe()
              throws WrongStateException,
                     ExecuteException,
                     UnsupportedFeatureException,
                     UserEntryStoreException
Specified by:
resetQbe in interface Report
Throws:
WrongStateException
ExecuteException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.resetQbe()

setQbeOrientation

public void setQbeOrientation(java.lang.String orientation)
                       throws WrongStateException,
                              ExecuteException,
                              UnsupportedFeatureException,
                              UserEntryStoreException
Specified by:
setQbeOrientation in interface Report
Throws:
WrongStateException
ExecuteException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.setQbeOrientation(java.lang.String)

generateColumns

public void generateColumns(org.xml.sax.ContentHandler contentHandler)
                     throws org.xml.sax.SAXException,
                            UnsupportedFeatureException
Specified by:
generateColumns in interface Report
Throws:
org.xml.sax.SAXException
UnsupportedFeatureException
See Also:
Report.generateColumns(org.xml.sax.ContentHandler)

submitColumns

public void submitColumns(java.util.Map values)
                   throws ExecuteException,
                          WrongStateException,
                          UnsupportedFeatureException,
                          UserEntryStoreException
Specified by:
submitColumns in interface Report
Throws:
ExecuteException
WrongStateException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.submitColumns(java.util.Map)

resetColumns

public void resetColumns()
                  throws ExecuteException,
                         WrongStateException,
                         UnsupportedFeatureException,
                         UserEntryStoreException
Specified by:
resetColumns in interface Report
Throws:
ExecuteException
WrongStateException
UnsupportedFeatureException
UserEntryStoreException
See Also:
Report.resetColumns()

getOrderBySql

public java.lang.String getOrderBySql()
Description copied from interface: ExecutionContext
Returns the sql for the currently selected orderby choice, or null if no orderby is configured.

Specified by:
getOrderBySql in interface ExecutionContext
See Also:
ExecutionContext.getOrderBySql()

getCurrentStep

protected Step getCurrentStep()
                       throws ExecuteException,
                              UserEntryStoreException
Returns:
the interation step that the user currently needs to complete. If all interaction steps have passed, it returns null.
Throws:
ExecuteException
UserEntryStoreException

getCurrentStepName

public java.lang.String getCurrentStepName()
                                    throws ExecuteException,
                                           UserEntryStoreException
Specified by:
getCurrentStepName in interface Report
Returns:
the name of the current step to complete. If there is no such step, null is returned.
Throws:
ExecuteException
UserEntryStoreException
See Also:
Report.getCurrentStepName()

getStep

public Step getStep(java.lang.String stepName)

getInputField

public InputField getInputField(java.lang.String name)
Description copied from interface: ExecutionContext
If the ExecutionContext is a Step, then this will only provide access to InputField's of the current or previous steps.

Specified by:
getInputField in interface ExecutionContext
See Also:
ExecutionContext.getInputField(java.lang.String)

registerTemporaryTableName

public void registerTemporaryTableName(java.lang.String name)
Description copied from interface: ExecutionContext
Registers a temporary table name for automatic cleanup. This will only work when the ExecutionContext is a Step. Temporary tables will be cleaned up either if the report instance expires, or if the user goes back to a previous step.

Specified by:
registerTemporaryTableName in interface ExecutionContext
See Also:
ExecutionContext.registerTemporaryTableName(java.lang.String)

getTemporaryTableName

public java.lang.String getTemporaryTableName(java.lang.String name)
Description copied from interface: ExecutionContext
Constructs a temporary table name. You should also call ExecutionContext.registerTemporaryTableName(java.lang.String) if this table should be cleaned up automatically by XReporter.

Specified by:
getTemporaryTableName in interface ExecutionContext
See Also:
ExecutionContext.getTemporaryTableName(java.lang.String)

getDataSource

public DataSource getDataSource()
Description copied from interface: ExecutionContext
Gets the data source of the report instance.

Specified by:
getDataSource in interface ExecutionContext
See Also:
ExecutionContext.getDataSource()

getDataSourceManager

public DataSourceManager getDataSourceManager()
Description copied from interface: ExecutionContext
Gets the data source manager. This allows to access other data sources then the one against which the report instance works.

Specified by:
getDataSourceManager in interface ExecutionContext
See Also:
ExecutionContext.getDataSourceManager()

getUserEntryStore

public UserEntryStore getUserEntryStore()

getQbe

public Qbe getQbe()
Description copied from interface: ExecutionContext
Provides access to the QBE (Query By Example) configuration.

Specified by:
getQbe in interface ExecutionContext
See Also:
ExecutionContext.getQbe()

getExpressionContext

public ExpressionContext getExpressionContext()
Description copied from interface: ExecutionContext
Gets the context for evaluating expressions. This differs between ReportImpl and Step, because in step expression variables will only be resolved against parameters from previous steps.

Specified by:
getExpressionContext in interface ExecutionContext
See Also:
ExecutionContext.getExpressionContext()

getColumns

public Columns getColumns()
Description copied from interface: ExecutionContext
Provides access to the Columns configuration.

Specified by:
getColumns in interface ExecutionContext
See Also:
ExecutionContext.getColumns()

getReportId

public java.lang.String getReportId()
Description copied from interface: ExecutionContext
Returns the id of the report instance.

Specified by:
getReportId in interface ExecutionContext
See Also:
ExecutionContext.getReportId()

getReportDefinitionId

public java.lang.String getReportDefinitionId()
Specified by:
getReportDefinitionId in interface ExecutionContext
See Also:
ExecutionContext.getReportDefinitionId()

acquire

public Report acquire(User user)
               throws java.lang.InterruptedException
Acquire a lock on this report. If the report is in use this will immediatelly throw an exception.

Throws:
java.lang.InterruptedException

acquire

public Report acquire(long msecs,
                      User user)
               throws java.lang.InterruptedException
Acquire a lock on this report. This waits up to msecs milliseconds if the report is in use.

Throws:
java.lang.InterruptedException

release

public void release()
Specified by:
release in interface Report
See Also:
Report.release()

resetLastAccessed

public void resetLastAccessed()

getLastAccessed

public long getLastAccessed()

dispose

public void dispose()
Cleans up resources used by this report.


getResourceHandle

public ResourceHandle getResourceHandle()
Specified by:
getResourceHandle in interface ExecutionContext
See Also:
ExecutionContext.getResourceHandle()

getUser

public User getUser()
Gets the user currently using this report. This will only contain a value if the report is locked.

Specified by:
getUser in interface ExecutionContext
See Also:
ExecutionContext.getUser()

generateReportHeaderStartSaxFragment

protected void generateReportHeaderStartSaxFragment(org.xml.sax.ContentHandler contentHandler)
                                             throws org.xml.sax.SAXException
Generate the beginning of a report header, this leaves the xr:report and xr:info elements open. You should call generateReportHeaderStopSaxFragment(org.xml.sax.ContentHandler) to close the xr:info element and generateReportFooterSaxFragment(org.xml.sax.ContentHandler) to close the xr:report element and end the document.

Throws:
org.xml.sax.SAXException

generateReportHeaderStopSaxFragment

protected void generateReportHeaderStopSaxFragment(org.xml.sax.ContentHandler contentHandler)
                                            throws org.xml.sax.SAXException
Closes the xr:info element started by generateReportHeaderStartSaxFragment(org.xml.sax.ContentHandler).

Throws:
org.xml.sax.SAXException

generateReportFooterSaxFragment

protected void generateReportFooterSaxFragment(org.xml.sax.ContentHandler contentHandler)
                                        throws org.xml.sax.SAXException
Closes the xr:report element and ends the document started by generateReportHeaderStartSaxFragment(org.xml.sax.ContentHandler).

Throws:
org.xml.sax.SAXException

generateStepsInfoSaxFragment

protected void generateStepsInfoSaxFragment(org.xml.sax.ContentHandler contentHandler)
                                     throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

getState

public ReportState getState()
                     throws java.lang.Exception
Description copied from interface: Report
Returns an object containing all user-specified state of the report.

This method should only be called on reports for which the flow has been sucessfully completed.

Specified by:
getState in interface Report
Throws:
java.lang.Exception

restoreState

public void restoreState(ReportState reportState)
                  throws LoadReportStateException
Description copied from interface: Report
Applies the state from the given reportState back to this report.

This method should only be called on newly created report instances, on which no other submit* method is called yet.

Specified by:
restoreState in interface Report
Throws:
LoadReportStateException

generateUrl

public void generateUrl(org.xml.sax.ContentHandler contentHandler)
                 throws java.lang.Exception
Description copied from interface: Report
Generates some XML containing a /reports URL with all necessary parameters to recreate the report to its current state.

Specified by:
generateUrl in interface Report
Throws:
java.lang.Exception