Class SelectableRangeSet

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

public final class SelectableRangeSet extends 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 Details

    • 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 Details

    • 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 'invalid input: '<'=' 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 String toString()
      Outputs this range as a string, for diagnostic and testing purposes.
      Overrides:
      toString in class Object
    • main

      public static void main(String[] args)
      A test application.