org.springframework.batch.item.file.mapping

## Class PatternMatchingCompositeLineMapper<T>

- java.lang.Object
- - org.springframework.batch.item.file.mapping.PatternMatchingCompositeLineMapper<T>

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

      public class PatternMatchingCompositeLineMapper<T>
      extends java.lang.Object
      implements LineMapper<T>, org.springframework.beans.factory.InitializingBean

  A `LineMapper` implementation that stores a mapping of String patterns to delegate `LineTokenizer`s as well as a mapping of String patterns to delegate `FieldSetMapper`s. Each line received will be tokenized and then mapped to a field set.

  Both the tokenizing and the mapping work in a similar way. The line will be checked for its matching pattern. If the key matches a pattern in the map of delegates, then the corresponding delegate will be used. Patterns are sorted starting with the most specific, and the first match succeeds.

  Since:
    2.0
  Author:
    Dan Garrette, Dave Syer
  See Also:
    `PatternMatchingCompositeLineTokenizer`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PatternMatchingCompositeLineMapper()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()`
    `T` | `mapLine(java.lang.String line, int lineNumber)` Implementations must implement this method to map the provided line to the parameter type T.
    `void` | `setFieldSetMappers(java.util.Map<java.lang.String,FieldSetMapper<T>> fieldSetMappers)`
    `void` | `setTokenizers(java.util.Map<java.lang.String,LineTokenizer> tokenizers)`

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

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

- - ### Constructor Detail

    - #### PatternMatchingCompositeLineMapper

          public PatternMatchingCompositeLineMapper()

  - ### Method Detail

    - #### mapLine

          public T mapLine(java.lang.String line,
                           int lineNumber)
                    throws java.lang.Exception

      Description copied from interface: `LineMapper`
      Implementations must implement this method to map the provided line to the parameter type T. The line number represents the number of lines into a file the current line resides.
      Specified by:
        `mapLine` in interface `LineMapper<T>`
      Parameters:
        `line` - to be mapped
        `lineNumber` - of the current line
      Returns:
        mapped object of type T
      Throws:
        `java.lang.Exception` - if error occurred while parsing.

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws java.lang.Exception

      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `java.lang.Exception`

    - #### setTokenizers

          public void setTokenizers(java.util.Map<java.lang.String,LineTokenizer> tokenizers)

    - #### setFieldSetMappers

          public void setFieldSetMappers(java.util.Map<java.lang.String,FieldSetMapper<T>> fieldSetMappers)