fc.util
Class DateRangeSet

java.lang.Object
  extended by fc.util.DateRangeSet

public class DateRangeSet
extends Object

A set of date ranges.


Constructor Summary
DateRangeSet(DateRange cs)
          Constructs a new DateRangeSet with the initial set containing only the specified DateRange
 
Method Summary
 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).
 void intersection(DateRange r)
          Adds the specified range as an intersection to the existing ranges (for purposes of inRange(char) method).
static void main(String[] args)
           
 String toString()
           
 void union(DateRange r)
          Adds this specified range as a union to the existing set of ranges (for purposes of inRange(char) method).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DateRangeSet

public DateRangeSet(DateRange cs)
Constructs a new DateRangeSet with the initial set containing only the specified DateRange

Parameters:
cs - the initial DateRange
Method Detail

union

public void union(DateRange r)
Adds this specified range as a union to the existing set of ranges (for purposes of 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 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) || ...) && C.inRange(c) && D.inRange(c) && ...
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)