Package com.mckoi.database

## Class SelectableRangeSet

- java.lang.Object
- - com.mckoi.database.SelectableRangeSet

    public final class SelectableRangeSet
    extends java.lang.Object

Represents a complex normalized range of a list. This is essentially a set of SelectableRange objects that make up a complex view of a range. For example, say we had a query '(a > 10 and a < 20 and a <> 15) or a >= 50', we could represent this range by the following range set;

     RANGE: AFTER_LAST_VALUE 10, BEFORE_FIRST_VALUE 15
     RANGE: AFTER_LAST_VALUE 15, BEFORE_FIRST_VALUE 20
     RANGE: FIRST_VALUE 50, LAST_VALUE LAST_IN_SET

The range is constructed by calls to 'intersect', and 'union'.

Author:
  Tobias Downer

### Constructor Summary

Constructors
`SelectableRangeSet()` Constructs the SelectableRangeSet to a full range (a range that encompases all values).

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `intersect​(Operator op, TObject val)` Intersects this range with the given Operator and value constraint.
`static void` `main​(java.lang.String[] args)` A test application.
`SelectableRange[]` `toSelectableRangeArray()` Returns the range as an array of SelectableRange or an empty array if there is no range.
`java.lang.String` `toString()` Outputs this range as a string, for diagnostic and testing purposes.
`void` `union​(Operator op, TObject val)` Unions this range with the given Operator and value constraint.
`void` `union​(SelectableRangeSet union_to)` Unions the current range set with the given range set.

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

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

### Constructor Detail

#### SelectableRangeSet

    public SelectableRangeSet()

Constructs the SelectableRangeSet to a full range (a range that encompases all values). If 'no_nulls' is true then the range can't include null values.

### Method Detail

#### intersect

    public void intersect​(Operator op,
                          TObject val)

Intersects this range with the given Operator and value constraint. For example, if a range is 'a' -> [END] and the given operator is '<=' and the value is 'z' the result range is 'a' -> 'z'.

#### union

    public void union​(Operator op,
                      TObject val)

Unions this range with the given Operator and value constraint.

#### union

    public void union​(SelectableRangeSet union_to)

Unions the current range set with the given range set.

#### toSelectableRangeArray

    public SelectableRange[] toSelectableRangeArray()

Returns the range as an array of SelectableRange or an empty array if there is no range.

#### toString

    public java.lang.String toString()

Outputs this range as a string, for diagnostic and testing purposes.

Overrides:
  `toString` in class `java.lang.Object`

#### main

    public static void main​(java.lang.String[] args)

A test application.