Class DateRangeSet

java.lang.Object
fc.util.DateRangeSet

public class DateRangeSet extends Object
A set of date ranges.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new DateRangeSet with the initial set containing only the specified DateRange
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Consider a set of ranges A, B added as a union (logical or) and ranges C and D added as an intersection (logical and).
    void
    Adds the specified range as an intersection to the existing ranges (for purposes of
    invalid reference
    inRange(char)
    method).
    static void
    main(String[] args)
     
     
    void
    Adds this specified range as a union to the existing set of ranges (for purposes of
    invalid reference
    inRange(char)
    method).

    Methods inherited from class Object

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

    • DateRangeSet

      public DateRangeSet(DateRange cs)
      Constructs a new DateRangeSet with the initial set containing only the specified DateRange
      Parameters:
      cs - the initial DateRange
  • Method Details

    • union

      public void union(DateRange r)
      Adds this specified range as a union to the existing set of ranges (for purposes of
      invalid reference
      inRange(char)
      method). Overlapping ranges are ok.
      Parameters:
      cs - a DateRange to unite with
      Throws:
      IllegalArgumentException - if the specified range was null
    • intersection

      public void intersection(DateRange r)
      Adds the specified range as an intersection to the existing ranges (for purposes of
      invalid reference
      inRange(char)
      method). Overlapping ranges are ok.
      Parameters:
      r - the range to add
    • inRange

      public boolean inRange(Date val)
      Consider a set of ranges A, B added as a union (logical or) and ranges C and D added as an intersection (logical and). A character c is in range if it exists in:
      (A.inRange(c) || B.inRange(c) || ...) invalid input: '&'invalid input: '&' C.inRange(c) invalid input: '&'invalid input: '&' D.inRange(c) invalid input: '&'invalid input: '&' ...
      This can be generalized to an arbitrary number of sub ranges. If intersection or union ranges don't exist, then they are not considered in the above expression. Note, the interaction may be subtle if any of the ranges (A, B, C...etc) are individually negated because in that case the inRange method for that negated range would return true if the specified character was not in that range.
      Returns:
      true if the passed in character is allowed by this set of ranges.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • main

      public static void main(String[] args)