Package net.sf.jasperreports.engine.fill
Class BaseFillHandle
- java.lang.Object
-
- net.sf.jasperreports.engine.fill.BaseFillHandle
-
- All Implemented Interfaces:
FillHandle
- Direct Known Subclasses:
AsynchronousFillHandle
public abstract class BaseFillHandle extends Object implements FillHandle
Base class used to perform report filling asychronously.An instance of this type can be used as a handle to an asychronous fill process. The main benefit of this method is that the filling process can be cancelled.
- Author:
- Lucian Chirita (lucianc@users.sourceforge.net)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
BaseFillHandle.ReportFill
-
Field Summary
Fields Modifier and Type Field Description protected boolean
cancelled
protected Connection
conn
protected JRDataSource
dataSource
protected ReportFiller
filler
protected JasperReport
jasperReport
protected JasperReportsContext
jasperReportsContext
protected List<AsynchronousFilllListener>
listeners
protected Object
lock
protected Map<String,Object>
parameters
protected boolean
running
protected boolean
started
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseFillHandle(JasperReportsContext jasperReportsContext, JasperReportSource reportSource, Map<String,Object> parameters, JRDataSource dataSource, Connection conn)
protected
BaseFillHandle(JasperReportsContext jasperReportsContext, JasperReport jasperReport, Map<String,Object> parameters, JRDataSource dataSource, Connection conn)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addFillListener(FillListener listener)
Adds a fill listener to the filling process.void
addListener(AsynchronousFilllListener listener)
Adds a listener to the filling process.void
cancellFill()
Cancels the fill started by the handle.protected abstract Executor
getReportExecutor()
boolean
isPageFinal(int pageIdx)
Determines wheter a page generated by the fill process is final or not.protected void
notifyCancel()
protected void
notifyError(Throwable e)
protected void
notifyFinish(JasperPrint print)
boolean
removeListener(AsynchronousFilllListener listener)
Removes a listener from the filling process.void
startFill()
Starts the filling process asychronously.
-
-
-
Field Detail
-
jasperReportsContext
protected final JasperReportsContext jasperReportsContext
-
jasperReport
protected final JasperReport jasperReport
-
dataSource
protected final JRDataSource dataSource
-
conn
protected final Connection conn
-
filler
protected final ReportFiller filler
-
listeners
protected final List<AsynchronousFilllListener> listeners
-
started
protected boolean started
-
running
protected boolean running
-
cancelled
protected boolean cancelled
-
lock
protected final Object lock
-
-
Constructor Detail
-
BaseFillHandle
protected BaseFillHandle(JasperReportsContext jasperReportsContext, JasperReport jasperReport, Map<String,Object> parameters, JRDataSource dataSource, Connection conn) throws JRException
- Throws:
JRException
-
BaseFillHandle
protected BaseFillHandle(JasperReportsContext jasperReportsContext, JasperReportSource reportSource, Map<String,Object> parameters, JRDataSource dataSource, Connection conn) throws JRException
- Throws:
JRException
-
-
Method Detail
-
addListener
public void addListener(AsynchronousFilllListener listener)
Description copied from interface:FillHandle
Adds a listener to the filling process.- Specified by:
addListener
in interfaceFillHandle
- Parameters:
listener
- the listener to be added
-
addFillListener
public void addFillListener(FillListener listener)
Description copied from interface:FillHandle
Adds a fill listener to the filling process. The fill listener is notified of intermediate events that occur during the report generation.- Specified by:
addFillListener
in interfaceFillHandle
- Parameters:
listener
- the listener to add
-
removeListener
public boolean removeListener(AsynchronousFilllListener listener)
Description copied from interface:FillHandle
Removes a listener from the filling process.- Specified by:
removeListener
in interfaceFillHandle
- Parameters:
listener
- the listener to be removed- Returns:
- true if the listener was found and removed
-
startFill
public void startFill()
Description copied from interface:FillHandle
Starts the filling process asychronously.The filling can be launched on a new thread and the method exits after the execution is started.
When the filling finishes either in success or failure, the listeners are notified.
- Specified by:
startFill
in interfaceFillHandle
-
getReportExecutor
protected abstract Executor getReportExecutor()
-
cancellFill
public void cancellFill() throws JRException
Description copied from interface:FillHandle
Cancels the fill started by the handle.The method sends a cancel signal to the filling process. When the filling process will end, the listeners will be notified that the filling has been cancelled.
- Specified by:
cancellFill
in interfaceFillHandle
- Throws:
JRException
-
notifyFinish
protected void notifyFinish(JasperPrint print)
-
notifyCancel
protected void notifyCancel()
-
notifyError
protected void notifyError(Throwable e)
-
isPageFinal
public boolean isPageFinal(int pageIdx)
Description copied from interface:FillHandle
Determines wheter a page generated by the fill process is final or not.- Specified by:
isPageFinal
in interfaceFillHandle
- Parameters:
pageIdx
- the page index- Returns:
- whether the page at the specified index is final or can be subject to future changes
- See Also:
FillListener.pageUpdated(JasperPrint, int)
-
-