plugins/jasperreports7/src/main/java/org/apache/struts2/views/jasperreports7/ValueStackDataSource.java [83:97]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public Object getFieldValue(JRField field) {
        String expression = field.getName();

        Object value = valueStack.findValue(expression);
        LOG.debug("Field [{}] = [{}]", field.getName(), value);

        if (!wrapField && MakeIterator.isIterable(value) && field.getValueClass().isInstance(value)) {
            return value;
        } else if (MakeIterator.isIterable(value)) {
            // wrap value with ValueStackDataSource if not already wrapped
            return new ValueStackDataSource(this.valueStack, expression, wrapField);
        } else {
            return value;
        }
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java [88:105]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public Object getFieldValue(JRField field) throws JRException {
        //TODO: move the code to return a ValueStackDataSource to a seperate
        //      method when and if the JRDataSource interface is updated to support
        //      this.
        String expression = field.getName();

        Object value = valueStack.findValue(expression);
        LOG.debug("Field [{}] = [{}]", field.getName(), value);

        if (!wrapField && MakeIterator.isIterable(value) && field.getValueClass().isInstance(value)) {
            return value;
        } else if (MakeIterator.isIterable(value)) {
            // wrap value with ValueStackDataSource if not already wrapped
            return new ValueStackDataSource(this.valueStack, expression, wrapField);
        } else {
            return value;
        }
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



