Package org.apache.struts2.views.jasperreports

# Class ValueStackDataSource

java.lang.Object
org.apache.struts2.views.jasperreports.ValueStackDataSource

All Implemented Interfaces:
  `net.sf.jasperreports.engine.JRDataSource`, `net.sf.jasperreports.engine.JRRewindableDataSource`

public class ValueStackDataSource extends Object implements net.sf.jasperreports.engine.JRRewindableDataSource
Ported to Struts.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ValueStackDataSource(ValueStack valueStack, String dataSourceParam, boolean wrapField)`
  Create a value stack data source on the given iterable property

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getFieldValue(net.sf.jasperreports.engine.JRField field)`
  Get the value of a given field
  `void`
  `moveFirst()`
  Move to the first item.
  `boolean`
  `next()`
  Is there any more data

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

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

- ## Constructor Details

  - ### ValueStackDataSource

    public ValueStackDataSource(ValueStack valueStack, String dataSourceParam, boolean wrapField)
    Create a value stack data source on the given iterable property
    Parameters:
      `valueStack` - The value stack to base the data source on
      `dataSourceParam` - The property to iterate over for the report

- ## Method Details

  - ### getFieldValue

    public Object getFieldValue(net.sf.jasperreports.engine.JRField field) throws net.sf.jasperreports.engine.JRException
    Get the value of a given field
    Specified by:
      `getFieldValue` in interface `net.sf.jasperreports.engine.JRDataSource`
    Parameters:
      `field` - The field to get the value for. The expression language to get the value of the field is either taken from the description property or from the name of the field if the description is `null`.
    Returns:
      an `Object` containing the field value or a new `ValueStackDataSource` object if the field value evaluates to an object that can be iterated over.
    Throws:
      `net.sf.jasperreports.engine.JRException` - if there is a problem obtaining the value

  - ### moveFirst

    public void moveFirst() throws net.sf.jasperreports.engine.JRException
    Move to the first item.
    Specified by:
      `moveFirst` in interface `net.sf.jasperreports.engine.JRRewindableDataSource`
    Throws:
      `net.sf.jasperreports.engine.JRException` - if there is a problem with moving to the first data element

  - ### next

    public boolean next() throws net.sf.jasperreports.engine.JRException
    Is there any more data
    Specified by:
      `next` in interface `net.sf.jasperreports.engine.JRDataSource`
    Returns:
      `true` if there are more elements to iterate over and `false` otherwise
    Throws:
      `net.sf.jasperreports.engine.JRException` - if there is a problem determining whether there is more data