net.sf.jasperreports.engine.fill

## Class AbstractThreadSubreportRunner

- java.lang.Object
- - net.sf.jasperreports.engine.fill.JRSubreportRunnable
  - - net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner

- All Implemented Interfaces:
    java.lang.Runnable, JRSubreportRunner
  Direct Known Subclasses:
    JRThreadSubreportRunner, ThreadExecutorSubreportRunner

      public abstract class AbstractThreadSubreportRunner
      extends JRSubreportRunnable
      implements JRSubreportRunner

  Version:
    $Id: AbstractThreadSubreportRunner.java 5878 2013-01-07 20:23:13Z teodord $
  Author:
    Lucian Chirita (lucianc@users.sourceforge.net)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JRBaseFiller` | `subreportFiller`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractThreadSubreportRunner(JRFillSubreport fillSubreport, JRBaseFiller subreportFiller)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cancel()` Cancels the current fill process.
    `protected abstract void` | `doStart()`
    `JRSubreportRunResult` | `resume()` Resumes the filling of a subreport.
    `void` | `run()`
    `JRSubreportRunResult` | `start()` Starts to fill the subreport.
    `void` | `suspend()` Suspends the current fill.
    `protected JRSubreportRunResult` | `waitResult()`

    - ### Methods inherited from class net.sf.jasperreports.engine.fill.JRSubreportRunnable

      `isRunning, runResult`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface net.sf.jasperreports.engine.fill.JRSubreportRunner

      `isFilling, reset`

- - ### Field Detail

    - #### subreportFiller

          protected final JRBaseFiller subreportFiller

  - ### Constructor Detail

    - #### AbstractThreadSubreportRunner

          public AbstractThreadSubreportRunner(JRFillSubreport fillSubreport,
                                       JRBaseFiller subreportFiller)

  - ### Method Detail

    - #### start

          public JRSubreportRunResult start()

      Description copied from interface: `JRSubreportRunner`
      Starts to fill the subreport.

      This method is always called by a thread owning the lock on the subreport filler.

      Specified by:
        `start` in interface `JRSubreportRunner`
      Returns:
        the result of the fill process

    - #### doStart

          protected abstract void doStart()

    - #### resume

          public JRSubreportRunResult resume()

      Description copied from interface: `JRSubreportRunner`
      Resumes the filling of a subreport.

      This method is called after the fill has been suspended by `suspend` and the subreport should continue on the new page.

      This method is always called by a thread owning the lock on the subreport filler.

      Specified by:
        `resume` in interface `JRSubreportRunner`
      Returns:
        the result of the fill process

    - #### waitResult

          protected JRSubreportRunResult waitResult()

    - #### cancel

          public void cancel()
                      throws JRException

      Description copied from interface: `JRSubreportRunner`
      Cancels the current fill process.

      This method is called when a subreport is placed on a non splitting band and needs to rewind.

      This method is always called by a thread owning the lock on the subreport filler.

      Specified by:
        `cancel` in interface `JRSubreportRunner`
      Throws:
        `JRException`

    - #### suspend

          public void suspend()
                       throws JRException

      Description copied from interface: `JRSubreportRunner`
      Suspends the current fill.

      This method is called when the subreport reaches the end of a page and needs to wait for the master to create a new page.

      This method is always called by a thread owning the lock on the subreport filler.

      Specified by:
        `suspend` in interface `JRSubreportRunner`
      Throws:
        `JRException`

    - #### run

          public void run()

      Specified by:
        `run` in interface `java.lang.Runnable`
      Overrides:
        `run` in class `JRSubreportRunnable`

© 2001-2010 Jaspersoft Corporation www.jaspersoft.com