Package weka.core

Class Range

  • All Implemented Interfaces:
    java.io.Serializable, RevisionHandler

    public class Range
    extends java.lang.Object
    implements java.io.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​(java.lang.String rangeList)
      Constructor to set initial range.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean getInvert()
      Gets whether the range sense is inverted, i.e.
      java.lang.String getRanges()
      Gets the string representing the selected range of values
      java.lang.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 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.
      static void main​(java.lang.String[] argv)
      Main method for testing this class.
      void setInvert​(boolean newSetting)
      Sets whether the range sense is inverted, i.e.
      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.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Range

        public Range()
        Default constructor.
      • Range

        public Range​(java.lang.String rangeList)
        Constructor to set initial range.
        Parameters:
        rangeList - the initial range
        Throws:
        java.lang.IllegalArgumentException - if the range list is invalid
    • Method Detail

      • 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 java.lang.String getRanges()
        Gets the string representing the selected range of values
        Returns:
        the range selection string
      • setRanges

        public void setRanges​(java.lang.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:
        java.lang.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:
        java.lang.RuntimeException - if the upper limit of the range hasn't been defined
      • toString

        public java.lang.String toString()
        Constructs a representation of the current range. Being a string representation, the numbers are based from 1.
        Overrides:
        toString in class java.lang.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:
        java.lang.RuntimeException - if the upper limit of the range hasn't been defined
      • indicesToRangeList

        public static java.lang.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 java.lang.String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface RevisionHandler
        Returns:
        the revision
      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - one parameter: a test range specification