org.springframework.batch.sample.domain.multiline

## Class AggregateItemFieldSetMapper<T>

- java.lang.Object
- - org.springframework.batch.sample.domain.multiline.AggregateItemFieldSetMapper<T>

- All Implemented Interfaces:
    FieldSetMapper<AggregateItem<T>>, org.springframework.beans.factory.InitializingBean

      public class AggregateItemFieldSetMapper<T>
      extends java.lang.Object
      implements FieldSetMapper<AggregateItem<T>>, org.springframework.beans.factory.InitializingBean

  Delegating mapper to convert form a vanilla `FieldSetMapper` to one that returns `AggregateItem` instances for consumption by the `AggregateItemReader`.
  Author:
    Dave Syer

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AggregateItemFieldSetMapper()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Check mandatory properties (delegate).
    `AggregateItem<T>` | `mapFieldSet(FieldSet fieldSet)` Build an `AggregateItem` based on matching the first column in the input `FieldSet` to check for begin and end delimiters.
    `void` | `setBegin(java.lang.String begin)` Public setter for the begin value.
    `void` | `setDelegate(FieldSetMapper<T> delegate)` Public setter for the delegate.
    `void` | `setEnd(java.lang.String end)` Public setter for the end field value.

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

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

- - ### Constructor Detail

    - #### AggregateItemFieldSetMapper

          public AggregateItemFieldSetMapper()

  - ### Method Detail

    - #### setDelegate

          public void setDelegate(FieldSetMapper<T> delegate)

      Public setter for the delegate.
      Parameters:
        `delegate` - the delegate to set

    - #### setEnd

          public void setEnd(java.lang.String end)

      Public setter for the end field value. If the `FieldSet` input has a first field with this value that signals the start of an aggregate record.
      Parameters:
        `end` - the end to set

    - #### setBegin

          public void setBegin(java.lang.String begin)

      Public setter for the begin value. If the `FieldSet` input has a first field with this value that signals the end of an aggregate record.
      Parameters:
        `begin` - the begin to set

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws java.lang.Exception

      Check mandatory properties (delegate).
      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `java.lang.Exception`
      See Also:
        `InitializingBean.afterPropertiesSet()`

    - #### mapFieldSet

          public AggregateItem<T> mapFieldSet(FieldSet fieldSet)
                                       throws org.springframework.validation.BindException

      Build an `AggregateItem` based on matching the first column in the input `FieldSet` to check for begin and end delimiters. If the current record is neither a begin nor an end marker then it is mapped using the delegate.
      Specified by:
        `mapFieldSet` in interface `FieldSetMapper<AggregateItem<T>>`
      Parameters:
        `fieldSet` - a `FieldSet` to map
      Returns:
        an `AggregateItem` that wraps the return value from the delegate
      Throws:
        `org.springframework.validation.BindException` - if one of the delegates does