uk.ac.starlink.table.join
Class RowLink

java.lang.Object
  |
  +--uk.ac.starlink.table.join.RowLink
All Implemented Interfaces:
Comparable

public class RowLink
extends Object
implements Comparable

Represents an ordered set of RowRefs which are considered in some way linked to each other. Although it doesn't implement the SortedSet interface (being immutable this wouldn't gain you much) its spirit is that of a sorted set - its equals and hashCode methods are implemented such that two RowLinks which contain equivalent groups of RowRef objects are considered the same. This makes RowLink instances suitable for use as keys in hashes that should not contain duplicate entries for duplicate links. The getRef method returns RowRefs in their natural order.


Constructor Summary
RowLink(Collection rows)
          Constructs a new RowLink from a Collection of RowRef objects.
RowLink(RowRef row)
          Convenience constructor to construct a singleton RowLink.
RowLink(RowRef[] rows)
          Constructs a new RowLink from an array of RowRef objects.
RowLink(RowRef rowA, RowRef rowB)
          Convenience constructor to construct a 2-row RowLink.
 
Method Summary
 int compareTo(Object o)
          Comparison order compares first table (if present in both objects) first, etc.
 boolean equals(Object o)
          Assesses equality.
 RowRef getRef(int i)
          Returns the ith row ref in this link.
 int hashCode()
          Returns a hash code which is consistent with the equals method.
 int size()
          Returns the number of rows linked by this object.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RowLink

public RowLink(Collection rows)
Constructs a new RowLink from a Collection of RowRef objects. An unchecked exception will be thrown if rows contains some elements which are not instances of RowRef.

Parameters:
rows - collection of RowRef objects

RowLink

public RowLink(RowRef[] rows)
Constructs a new RowLink from an array of RowRef objects.

Parameters:
rows - array of row references

RowLink

public RowLink(RowRef row)
Convenience constructor to construct a singleton RowLink.

Parameters:
row - sole row

RowLink

public RowLink(RowRef rowA,
               RowRef rowB)
Convenience constructor to construct a 2-row RowLink.

Parameters:
rowA - one row
rowB - the other row
Method Detail

size

public int size()
Returns the number of rows linked by this object.

Returns:
number of RowRefs

getRef

public RowRef getRef(int i)
Returns the ith row ref in this link.

Parameters:
i - index
Returns:
RowRef at i

equals

public boolean equals(Object o)
Assesses equality. Two RowLink objects are equal if they contain equivalent sets of RowRefs.

Overrides:
equals in class Object

hashCode

public int hashCode()
Returns a hash code which is consistent with the equals method. Since RowLinks are immutable, this is only calculated once, for efficiency.

Overrides:
hashCode in class Object

compareTo

public int compareTo(Object o)
Comparison order compares first table (if present in both objects) first, etc.

Specified by:
compareTo in interface Comparable

toString

public String toString()
Overrides:
toString in class Object

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.