uk.ac.starlink.table.join
Class RowLink

java.lang.Object
  extended byuk.ac.starlink.table.join.RowLink
All Implemented Interfaces:
Comparable
Direct Known Subclasses:
PairsRowLink, RowLink2

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.
 
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
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.


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.


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()

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