jopt.csp.util
Class LongIntervalSet

java.lang.Object
  extended byjopt.csp.util.LongSet
      extended byjopt.csp.util.LongIntervalSet
All Implemented Interfaces:
IntervalSet, NumSet

public class LongIntervalSet
extends LongSet
implements IntervalSet

A sorted set of long intervals


Constructor Summary
LongIntervalSet()
          Creates a new set
 
Method Summary
 void add(long val)
          Adds a value to set
 void add(LongIntervalSet set)
          Adds a value to set
 void add(long start, long end)
          Adds a range of values to set
 void add(long start, long end, boolean notify)
          Adds a range of values to set
 void clear()
          Removes all values from the set
 java.lang.Object clone()
          Creates a duplicate of this set
 boolean contains(long val)
          Returns true if value is contained in set
 boolean equals(LongIntervalSet set)
          An equals method for comparing if two set objects are equivalent
 int getFirstIntervalIndex()
          Returns first interval index in list
 LongIntervalSet getFreeIntervalsBetween(long start, long end)
          Returns a long interval set of all the intervals that are free between the specified start and end
 long getIntervalEnd(int idx)
          Returns end value for interval at a given index
 long getIntervalStart(int idx)
          Returns start value for interval at a given index
 int getLastIntervalIndex()
          Returns the last index in list
 LongIntervalSetListener getListener()
          Returns listener that is currently assigned to set
 long getMax()
          Returns maximum value for set
 long getMax(int intervalIdx)
          Returns the end of the interval at the specified index
 long getMin()
          Returns minimum value for set
 long getMin(int intervalIdx)
          Returns the start of the interval at the specified index
 long getNextHigher(long val)
          Returns the next higher value in the domain or current value if none exists
 int getNextIntervalIndex(int idx)
          Returns next interval index in list
 long getNextLower(long val)
          Returns the next lower value in the domain or current value if none exists
 int getPreviousIntervalIndex(int idx)
          Returns previous interval index in list
 int indexOfValue(long val)
          Returns index of a value in the list
 void intersect(LongIntervalSet intersector)
          Removes any parts that both do not have in common from this.
 IntervalIterator intervals()
          Returns an iterator for intervals contained in set
 boolean isEmpty()
           
 boolean isIntervalContained(long start, long end)
           
 boolean isIntervalEmpty(long start, long end)
           
 void remove(long val)
          Removes a value from the set
 void remove(long start, long end)
          Removes a range of values from the set
 void remove(long start, long end, boolean notify)
          Removes a range of values from the set
 void removeEndingAt(long val)
          Removes all values below and including given value
 void removeStartingFrom(long val)
          Removes all values above and including given value
 void setListener(LongIntervalSetListener listener, int callback)
          Sets listener for set to be notified of changes
 int size()
          Returns the size of the set
 java.lang.String toString()
           
 NumberIterator values()
          Returns an iterator containing all values in the set
 
Methods inherited from class jopt.csp.util.LongSet
addAll, removeAll, removeEndingBefore, removeStartingAfter, retainAll
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LongIntervalSet

public LongIntervalSet()
Creates a new set

Method Detail

size

public int size()
Returns the size of the set

Specified by:
size in interface NumSet

clear

public void clear()
Removes all values from the set

Specified by:
clear in interface NumSet
Specified by:
clear in class LongSet

getFirstIntervalIndex

public int getFirstIntervalIndex()
Returns first interval index in list


getLastIntervalIndex

public int getLastIntervalIndex()
Returns the last index in list


getNextIntervalIndex

public int getNextIntervalIndex(int idx)
Returns next interval index in list

Parameters:
idx - Index preceding index that is to be found

getPreviousIntervalIndex

public int getPreviousIntervalIndex(int idx)
Returns previous interval index in list

Parameters:
idx - Index following index that is to be found

getIntervalStart

public long getIntervalStart(int idx)
Returns start value for interval at a given index


getIntervalEnd

public long getIntervalEnd(int idx)
Returns end value for interval at a given index


getMin

public long getMin()
Returns minimum value for set

Specified by:
getMin in class LongSet

getMin

public long getMin(int intervalIdx)
Returns the start of the interval at the specified index


getMax

public long getMax()
Returns maximum value for set

Specified by:
getMax in class LongSet

getMax

public long getMax(int intervalIdx)
Returns the end of the interval at the specified index


isIntervalContained

public boolean isIntervalContained(long start,
                                   long end)

isIntervalEmpty

public boolean isIntervalEmpty(long start,
                               long end)

isEmpty

public boolean isEmpty()

getFreeIntervalsBetween

public LongIntervalSet getFreeIntervalsBetween(long start,
                                               long end)
Returns a long interval set of all the intervals that are free between the specified start and end

Parameters:
start - start of the interval
end - end of the interval
Returns:
a long interval set of all the intervals that are free between start and end

indexOfValue

public int indexOfValue(long val)
Returns index of a value in the list


contains

public boolean contains(long val)
Returns true if value is contained in set

Specified by:
contains in class LongSet

add

public void add(long val)
Adds a value to set

Specified by:
add in class LongSet

add

public void add(LongIntervalSet set)
Adds a value to set


add

public void add(long start,
                long end)
Adds a range of values to set

Specified by:
add in class LongSet

add

public void add(long start,
                long end,
                boolean notify)
Adds a range of values to set


intersect

public void intersect(LongIntervalSet intersector)
Removes any parts that both do not have in common from this.


remove

public void remove(long val)
Removes a value from the set

Specified by:
remove in class LongSet

remove

public void remove(long start,
                   long end)
Removes a range of values from the set

Specified by:
remove in class LongSet

remove

public void remove(long start,
                   long end,
                   boolean notify)
Removes a range of values from the set


removeStartingFrom

public void removeStartingFrom(long val)
Removes all values above and including given value

Specified by:
removeStartingFrom in class LongSet

removeEndingAt

public void removeEndingAt(long val)
Removes all values below and including given value

Specified by:
removeEndingAt in class LongSet

getNextHigher

public long getNextHigher(long val)
Returns the next higher value in the domain or current value if none exists

Specified by:
getNextHigher in class LongSet

getNextLower

public long getNextLower(long val)
Returns the next lower value in the domain or current value if none exists

Specified by:
getNextLower in class LongSet

intervals

public IntervalIterator intervals()
Description copied from interface: IntervalSet
Returns an iterator for intervals contained in set

Specified by:
intervals in interface IntervalSet

values

public NumberIterator values()
Description copied from interface: NumSet
Returns an iterator containing all values in the set

Specified by:
values in interface NumSet

clone

public java.lang.Object clone()
Creates a duplicate of this set

Specified by:
clone in interface NumSet
Specified by:
clone in class LongSet

setListener

public void setListener(LongIntervalSetListener listener,
                        int callback)
Sets listener for set to be notified of changes


getListener

public LongIntervalSetListener getListener()
Returns listener that is currently assigned to set


toString

public java.lang.String toString()

equals

public boolean equals(LongIntervalSet set)
An equals method for comparing if two set objects are equivalent

Parameters:
set - LongIntervalSet to compare this to
Returns:
true if the objects are determined to be equal