com.mckoi.database
Class SelectableRangeSet

java.lang.Object
  extended by 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
SelectableRangeSet()
          Constructs the SelectableRangeSet to a full range (a range that encompases all values).
 
Method Summary
 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.