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 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:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Implementations must implement this method to map the provided line to the parameter type T.void
setFieldSetMappers
(Map<String, FieldSetMapper<T>> fieldSetMappers) void
setTokenizers
(Map<String, LineTokenizer> tokenizers)
-
Constructor Details
-
PatternMatchingCompositeLineMapper
public PatternMatchingCompositeLineMapper()
-
-
Method Details
-
mapLine
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 interfaceLineMapper<T>
- Parameters:
line
- to be mappedlineNumber
- of the current line- Returns:
- mapped object of type T
- Throws:
Exception
- if error occurred while parsing.
-
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
setTokenizers
-
setFieldSetMappers
-