Class AbstractLineTokenizer
- java.lang.Object
- org.springframework.batch.item.file.transform.AbstractLineTokenizer
- All Implemented Interfaces:
LineTokenizer
- Direct Known Subclasses:
DelimitedLineTokenizer,FixedLengthTokenizer,RegexLineTokenizer
public abstract class AbstractLineTokenizer extends java.lang.Object implements LineTokenizer
Abstract class handling common concerns of variousLineTokenizerimplementations such as dealing with names and actual construction ofFieldSet- Author:
- Dave Syer, Robert Kasanicky, Lucas Ward, Michael Minella
Field Summary
Fields Modifier and Type Field Description protected java.lang.String[]names
Constructor Summary
Constructors Constructor Description AbstractLineTokenizer()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract java.util.List<java.lang.String>doTokenize(java.lang.String line)booleanhasNames()protected booleanisStrict()Provides access to the strict flag for subclasses if needed.voidsetFieldSetFactory(FieldSetFactory fieldSetFactory)Factory forFieldSetinstances.voidsetNames(java.lang.String... names)Setter for column names.voidsetStrict(boolean strict)Public setter for the strict flag.FieldSettokenize(java.lang.String line)Yields the tokens resulting from the splitting of the suppliedline.
Method Detail
setStrict
public void setStrict(boolean strict)
Public setter for the strict flag. If true (the default) then number of tokens in line must match the number of tokens defined (byRange, columns, etc.) inLineTokenizer. If false then lines with less tokens will be tolerated and padded with empty columns, and lines with more tokens will simply be truncated.- Parameters:
strict- the strict flag to set
isStrict
protected boolean isStrict()
Provides access to the strict flag for subclasses if needed.- Returns:
- the strict flag value
setFieldSetFactory
public void setFieldSetFactory(FieldSetFactory fieldSetFactory)
Factory forFieldSetinstances. Can be injected by clients to customize the default number and date formats.- Parameters:
fieldSetFactory- theFieldSetFactoryto set
setNames
public void setNames(java.lang.String... names)
Setter for column names. Optional, but if set, then all lines must have as many or fewer tokens.- Parameters:
names- names of each column
hasNames
public boolean hasNames()
- Returns:
trueif column names have been specified- See Also:
setNames(String[])
tokenize
public FieldSet tokenize(java.lang.String line)
Yields the tokens resulting from the splitting of the suppliedline.- Specified by:
tokenizein interfaceLineTokenizer- Parameters:
line- the line to be tokenized (can benull)- Returns:
- the resulting tokens
doTokenize
protected abstract java.util.List<java.lang.String> doTokenize(java.lang.String line)