Package weka.core

# Class Range

java.lang.Object
weka.core.Range

All Implemented Interfaces:
  `Serializable`, `RevisionHandler`

public class Range extends Object implements Serializable, RevisionHandler
Class representing a range of cardinal numbers. The range is set by a string representation such as:

`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).

Version:
  $Revision: 1.18 $
Author:
  Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`Range()`
Default constructor.
`Range(String rangeList)`
Constructor to set initial range.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`getInvert()`
Gets whether the range sense is inverted, i.e.
`String`
`getRanges()`
Gets the string representing the selected range of values
`String`
`getRevision()`
Returns the revision string.
`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 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.
`static void`
`main(String[] argv)`
Main method for testing this class.
`void`
`setInvert(boolean newSetting)`
Sets whether the range sense is inverted, i.e.
`void`
`setRanges(String rangeList)`
Sets the ranges from a string representation.
`void`
`setUpper(int newUpper)`
Sets the value of "last".
`String`
`toString()`
Constructs a representation of the current range.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### Range

public Range()
Default constructor.

### Range

public Range(String rangeList)
Constructor to set initial range.

Parameters:
  `rangeList` - the initial range
Throws:
  `IllegalArgumentException` - if the range list is invalid

## Method Details

### setUpper

public void setUpper(int newUpper)
Sets the value of "last".

Parameters:
  `newUpper` - the value of "last"

### getInvert

public boolean getInvert()
Gets whether the range sense is inverted, i.e. all except the values included by the range string are selected.

Returns:
  whether the matching sense is inverted

### setInvert

public void setInvert(boolean newSetting)
Sets whether the range sense is inverted, i.e. all except the values included by the range string are selected.

Parameters:
  `newSetting` - true if the matching sense is inverted

### getRanges

public String getRanges()
Gets the string representing the selected range of values

Returns:
  the range selection string

### setRanges

public void setRanges(String rangeList)
Sets the ranges from a string representation. Note that setUpper() must be called afterwards for ranges to be actually set internally.

Parameters:
  `rangeList` - the comma separated list of ranges. The empty string sets the range to empty.
Throws:
  `IllegalArgumentException` - if the rangeList was not well formed

### isInRange

public boolean isInRange(int index)
Gets whether the supplied cardinal number is included in the current range.

Parameters:
  `index` - the number of interest
Returns:
  true if index is in the current range
Throws:
  `RuntimeException` - if the upper limit of the range hasn't been defined

### toString

public String toString()
Constructs a representation of the current range. Being a string representation, the numbers are based from 1.

Overrides:
  `toString` in class `Object`
Returns:
  the string representation of the current range

### getSelection

public 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)

Returns:
  the array of selected values
Throws:
  `RuntimeException` - if the upper limit of the range hasn't been defined

### indicesToRangeList

public static String indicesToRangeList(int[] indices)
Creates a string representation of the indices in the supplied array.

Parameters:
  `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.
Returns:
  the string representation of the indices

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Returns:
  the revision

### main

public static void main(String[] argv)
Main method for testing this class.

Parameters:
  `argv` - one parameter: a test range specification