Class RangeArrayPropertyEditor
java.lang.Object
java.beans.PropertyEditorSupport
org.springframework.batch.item.file.transform.RangeArrayPropertyEditor
- All Implemented Interfaces:
PropertyEditor
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:
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, Mahmoud Ben Hassine
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
setForceDisjointRanges
(boolean forceDisjointRanges) Set force disjoint ranges.Methods inherited from class java.beans.PropertyEditorSupport
addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, setValue, supportsCustomEditor
-
Constructor Details
-
RangeArrayPropertyEditor
public RangeArrayPropertyEditor()
-
-
Method Details
-
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
- Specified by:
setAsText
in interfacePropertyEditor
- Overrides:
setAsText
in classPropertyEditorSupport
- Throws:
IllegalArgumentException
-
getAsText
- Specified by:
getAsText
in interfacePropertyEditor
- Overrides:
getAsText
in classPropertyEditorSupport
-