Class RangeArrayPropertyEditor

All Implemented Interfaces:

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>

'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.