Class RangeArrayPropertyEditor

java.lang.Object
java.beans.PropertyEditorSupport
org.springframework.batch.item.file.transform.RangeArrayPropertyEditor
All Implemented Interfaces:
PropertyEditor

public class RangeArrayPropertyEditor extends PropertyEditorSupport
Property editor implementation which parses string and creates array of ranges. Ranges can be provided in any order.
Input string should be provided in following format: 'range1, range2, range3,...' where range is specified as:
  • 'X-Y', where X is minimum value and Y is maximum value (condition X<=Y is verified)
  • or 'Z', where Z is minimum and maximum is calculated as (minimum of adjacent range - 1). Maximum of the last range is never calculated. Range stays unbound at maximum side if maximum value is not provided.
Minimum and maximum values can be from interval <1, Integer.MAX_VALUE-1>

Examples:
'1, 15, 25, 38, 55-60' is equal to '1-14, 15-24, 25-37, 38-54, 55-60'
'36, 14, 1-10, 15, 49-57' is equal to '36-48, 14-14, 1-10, 15-35, 49-57'

Property editor also allows to validate whether ranges are disjoint. Validation can be turned on/off by using setForceDisjointRanges(boolean). By default validation is turned off.

Author:
peter.zozom, Mahmoud Ben Hassine