Class FixedLengthTokenizer

java.lang.Object
org.springframework.batch.infrastructure.item.file.transform.AbstractLineTokenizer
org.springframework.batch.infrastructure.item.file.transform.FixedLengthTokenizer
All Implemented Interfaces:
LineTokenizer

public class FixedLengthTokenizer extends AbstractLineTokenizer
Tokenizer used to process data obtained from files with fixed-length format. Columns are specified by array of Range objects (setColumns(Range[]) ).
Author:
tomas.slanina, peter.zozom, Dave Syer, Lucas Ward, Michael Minella, Mahmoud Ben Hassine, Stefano Cordio
  • Constructor Details

    • FixedLengthTokenizer

      public FixedLengthTokenizer(Range... ranges)
      Create a new FixedLengthTokenizer instance with the given ranges.
      Parameters:
      ranges - the column ranges expected in the input
      Since:
      6.0
  • Method Details

    • setColumns

      public void setColumns(Range... ranges)
      Set the column ranges. Used in conjunction with the RangeArrayPropertyEditor this property can be set in the form of a String describing the range boundaries, e.g. "1,4,7" or "1-3,4-6,7" or "1-2,4-5,7-10". If a range is open, meaning it has no maximum value, then the rest of the line is read into that column (irrespective of the strict flag setting and of the position of that range in the given array).
      Parameters:
      ranges - the column ranges expected in the input
      See Also:
    • doTokenize

      protected List<String> doTokenize(String line)
      Yields the tokens resulting from the splitting of the supplied line.
      Specified by:
      doTokenize in class AbstractLineTokenizer
      Parameters:
      line - the line to be tokenized (can be null)
      Returns:
      the resulting tokens (empty if the line is null)
      Throws:
      IncorrectLineLengthException - if line length is greater than or less than the max range set.