Class RangeArrayPropertyEditor
- java.lang.Object
- java.beans.PropertyEditorSupport
- org.springframework.batch.item.file.transform.RangeArrayPropertyEditor
- All Implemented Interfaces:
java.beans.PropertyEditor
public class RangeArrayPropertyEditor extends java.beans.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.
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
Constructor Summary
Constructors Constructor Description RangeArrayPropertyEditor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getAsText()
void
setAsText(java.lang.String text)
void
setForceDisjointRanges(boolean forceDisjointRanges)
Set force disjoint ranges.
Method Detail
setForceDisjointRanges
public void setForceDisjointRanges(boolean forceDisjointRanges)
Set force disjoint ranges. If set to TRUE, ranges are validated to be disjoint. For example: defining ranges '1-10, 5-15' will cause IllegalArgumentException in case of forceDisjointRanges=TRUE.- Parameters:
forceDisjointRanges
- true to force disjoint ranges.
setAsText
public void setAsText(java.lang.String text) throws java.lang.IllegalArgumentException
- Specified by:
setAsText
in interfacejava.beans.PropertyEditor
- Overrides:
setAsText
in classjava.beans.PropertyEditorSupport
- Throws:
java.lang.IllegalArgumentException
getAsText
public java.lang.String getAsText()
- Specified by:
getAsText
in interfacejava.beans.PropertyEditor
- Overrides:
getAsText
in classjava.beans.PropertyEditorSupport