Package uk.ac.starlink.table.join
Class RowLink
- java.lang.Object
-
- uk.ac.starlink.table.join.RowLink
-
- All Implemented Interfaces:
java.lang.Comparable<RowLink>
- Direct Known Subclasses:
PairsRowLink,RowLink2
public class RowLink extends java.lang.Object implements java.lang.Comparable<RowLink>
Represents an ordered set ofRowRefs which are considered in some way linked to each other. Although it doesn't implement theSortedSetinterface (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.- Author:
- Mark Taylor (Starlink)
-
-
Constructor Summary
Constructors Constructor Description RowLink(java.util.Collection<RowRef> rows)Constructs a new RowLink from a Collection ofRowRefobjects.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(RowLink other)Comparison order compares first table (if present in both objects) first, etc.booleanequals(java.lang.Object o)Assesses equality.RowRefgetRef(int i)Returns the ith row ref in this link.inthashCode()Returns a hash code which is consistent with the equals method.intsize()Returns the number of rows linked by this object.java.lang.StringtoString()
-
-
-
Constructor Detail
-
RowLink
public RowLink(java.util.Collection<RowRef> rows)
Constructs a new RowLink from a Collection ofRowRefobjects. 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(java.lang.Object o)
Assesses equality. Two RowLink objects are equal if they contain equivalent sets of RowRefs.- Overrides:
equalsin classjava.lang.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:
hashCodein classjava.lang.Object
-
compareTo
public int compareTo(RowLink other)
Comparison order compares first table (if present in both objects) first, etc.- Specified by:
compareToin interfacejava.lang.Comparable<RowLink>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-