edu.washington.cs.knowitall.util
Class Range

java.lang.Object
  extended by edu.washington.cs.knowitall.util.Range
All Implemented Interfaces:
java.lang.Iterable<java.lang.Integer>

public class Range
extends java.lang.Object
implements java.lang.Iterable<java.lang.Integer>

An immutable class that represent an interval.

Author:
michael

Constructor Summary
Range(int start, int length)
           
 
Method Summary
static int compareStarts(Range r1, Range r2)
           
 boolean contains(int i)
           
 boolean contains(Range range)
           
 boolean equals(java.lang.Object obj)
           
 boolean equals(Range r)
           
static Range fromInterval(int start, int end)
          Returns a new range over the specified interval.
 int getEnd()
           
 int getLastIndex()
           
static Range getLeft(Range range1, Range range2)
           
 int getLength()
           
static Range getRight(Range range1, Range range2)
           
 int getStart()
           
static java.util.Comparator<Range> getStartComparator()
           
 int hashCode()
           
 boolean isAdjacentOrOverlaps(Range range)
           
 boolean isAdjacentTo(Range range)
           
 boolean isLeftOf(Range range)
           
 boolean isRightOf(Range range)
           
 java.util.Iterator<java.lang.Integer> iterator()
           
 Range join(Range range)
           
 boolean overlapsWith(Range range)
           
 Range removeOverlap(Range range)
           
 Range shift(int n)
           
 java.lang.String toString()
           
 java.lang.String toString(java.util.List<java.lang.Object> parts)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Range

public Range(int start,
             int length)
Method Detail

fromInterval

public static Range fromInterval(int start,
                                 int end)
Returns a new range over the specified interval.

Parameters:
start - The first item in the range (inclusive).
end - The end of the range (exclusive).
Returns:
a new range over the interval.

shift

public Range shift(int n)

getStart

public int getStart()

getEnd

public int getEnd()

getLength

public int getLength()

getLastIndex

public int getLastIndex()

isLeftOf

public boolean isLeftOf(Range range)

isRightOf

public boolean isRightOf(Range range)

contains

public boolean contains(int i)

contains

public boolean contains(Range range)

getLeft

public static Range getLeft(Range range1,
                            Range range2)

getRight

public static Range getRight(Range range1,
                             Range range2)

overlapsWith

public boolean overlapsWith(Range range)

isAdjacentTo

public boolean isAdjacentTo(Range range)

isAdjacentOrOverlaps

public boolean isAdjacentOrOverlaps(Range range)

join

public Range join(Range range)

removeOverlap

public Range removeOverlap(Range range)

equals

public boolean equals(Range r)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(java.util.List<java.lang.Object> parts)

getStartComparator

public static java.util.Comparator<Range> getStartComparator()

compareStarts

public static int compareStarts(Range r1,
                                Range r2)

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

iterator

public java.util.Iterator<java.lang.Integer> iterator()
Specified by:
iterator in interface java.lang.Iterable<java.lang.Integer>