public class Interval
extends java.lang.Object
implements java.io.Serializable
all
first-last
1,2,3,4
or combinations thereof. The range is internally converted from 1-based to 0-based (so methods that set or get numbers not in string format should use 0-based numbers).
Constructor and Description |
---|
Interval()
Default constructor.
|
Interval(java.lang.String rangeList)
Constructor to set initial range.
|
Modifier and Type | Method and Description |
---|---|
boolean |
getInvert()
Gets whether the range sense is inverted, i.e. all except
the values included by the range string are selected.
|
java.lang.String |
getRanges()
Gets the string representing the selected range of values
|
int[] |
getSelection()
Gets an array containing all the selected values, in the order
that they were selected (or ascending order if range inversion is on)
|
static java.lang.String |
indicesToRangeList(int[] indices)
Creates a string representation of the indices in the supplied array.
|
boolean |
isInRange(int index)
Gets whether the supplied cardinal number is included in the current
range.
|
protected boolean |
isValidRange(java.lang.String range)
Determines if a string represents a valid index or simple range.
|
protected int |
rangeLower(java.lang.String range)
Translates a range into it's lower index.
|
protected int |
rangeSingle(java.lang.String single)
Translates a single string selection into it's internal 0-based equivalent
|
protected int |
rangeUpper(java.lang.String range)
Translates a range into it's upper index.
|
protected void |
setFlags()
Sets the flags array.
|
void |
setInvert(boolean newSetting)
Sets whether the range sense is inverted, i.e. all except
the values included by the range string are selected.
|
void |
setRanges(java.lang.String rangeList)
Sets the ranges from a string representation.
|
void |
setUpper(int newUpper)
Sets the value of "last".
|
java.lang.String |
toString()
Constructs a representation of the current range.
|
public Interval()
public Interval(java.lang.String rangeList)
rangeList
- the initial rangejava.lang.IllegalArgumentException
- if the range list is invalidpublic void setUpper(int newUpper)
newUpper
- the value of "last"public boolean getInvert()
public void setInvert(boolean newSetting)
newSetting
- true if the matching sense is invertedpublic java.lang.String getRanges()
public void setRanges(java.lang.String rangeList)
rangeList
- the comma separated list of ranges. The empty
string sets the range to empty.java.lang.IllegalArgumentException
- if the rangeList was not well formedpublic boolean isInRange(int index)
index
- the number of interestjava.lang.RuntimeException
- if the upper limit of the range hasn't been definedpublic java.lang.String toString()
toString
in class java.lang.Object
public int[] getSelection()
java.lang.RuntimeException
- if the upper limit of the range hasn't been definedpublic static java.lang.String indicesToRangeList(int[] indices)
indices
- an array containing indices to select.
Since the array will typically come from a program, indices are assumed
from 0, and thus will have 1 added in the String representation.protected void setFlags()
protected int rangeSingle(java.lang.String single)
single
- the string representing the selection (eg: 1 first last)protected int rangeLower(java.lang.String range)
range
- the string representation of the rangeprotected int rangeUpper(java.lang.String range)
range
- the string representation of the rangeprotected boolean isValidRange(java.lang.String range)
first last 2 first-last first-4 4-last
Doesn't check that a < b for a-brange
-