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 variousLineTokenizer
implementations 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)
boolean
hasNames()
protected boolean
isStrict()
Provides access to the strict flag for subclasses if needed.void
setFieldSetFactory(FieldSetFactory fieldSetFactory)
Factory forFieldSet
instances.void
setNames(java.lang.String... names)
Setter for column names.void
setStrict(boolean strict)
Public setter for the strict flag.FieldSet
tokenize(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 forFieldSet
instances. Can be injected by clients to customize the default number and date formats.- Parameters:
fieldSetFactory
- theFieldSetFactory
to 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:
true
if 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:
tokenize
in 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)