|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A set of integers, often used to represent positions on biological sequences.
The location will contain some indices between getMin and getMax inclusive.
It is not required to contain all indices within this range. It is meant
to contain the indices returned by the getMin or getMax. In the event that
an operation would produce an
invalid or nonsensical range, Location.empty
should be returned.
Location objects are always immutable.
Locations can be constructed in a number of ways:
Location l1 = LocationTools.makeLocation(10, 20); // Makes a RangeLocation Location l2 = LocationTools.makeLocation(25, 25); // Makes a PointLocation Location l3 = LocationTools.union(l1, l2); // Construct a non-contiguous // location containing the // points from l1 and l2
Field Summary | |
static Location |
empty
The Location which contains no points. |
static org.biojava.bio.symbol.LocationComparator |
naturalOrder
Comparator which orders Locations naturally. |
Method Summary | |
java.util.Iterator |
blockIterator()
Return an Iterator over the set of maximal contiguous sub-locations. |
boolean |
contains(int p)
Checks if this location contains a point. |
boolean |
contains(Location l)
Checks if this location contains the other. |
boolean |
equals(java.lang.Object l)
Checks if this location is equivalent to the other. |
Location |
getDecorator(java.lang.Class decoratorClass)
Checks the decorator chain for an instance of |
int |
getMax()
The maximum position contained. |
int |
getMin()
The minimum position contained. |
Location |
intersection(Location l)
Returns a Location that contains all points common to both ranges. |
boolean |
isContiguous()
Determine if a Location is contiguous. |
Location |
newInstance(Location loc)
Create a new instance of Location with all of the same decorators as this instance but with the data stored in loc . |
boolean |
overlaps(Location l)
Checks if these two locations overlap, using this location's concept of overlapping. |
SymbolList |
symbols(SymbolList seq)
Return the symbols in a sequence that fall within this range. |
Location |
translate(int dist)
Create a location that is a translation of this location. |
Location |
union(Location l)
Return a Location containing all points in either ranges. |
Field Detail |
public static final Location empty
Location
which contains no points.
This object contains nothing. Its minimum value is Integer.MAX_VALUE. Its maximum value is Integer.MIN_VALUE. It overlaps nothing. It is equal to nothing. Intersection results in the empty range. Union results in the argument range. Symbols returns an empty array.
Every day, in every way, empty becomes more and more boring.
public static final org.biojava.bio.symbol.LocationComparator naturalOrder
getMin()
value. In cases where that is equal, they are secondarily sorted
by getMax()
value.
Method Detail |
public Location newInstance(Location loc)
loc
.
The default behavior is to return loc
.
loc
- the Location to use as template
public Location getDecorator(java.lang.Class decoratorClass)
The default behavior is to return null. If the current object is a
decorator and is an instance of
decoratorClass
- the Class to check
public int getMin()
WARNING: The location will not contain every point between getMin()
and getMax()
if isContiguous()
is false. If isContiguous()
does return false you should use the Iterator
returned by blockIterator()
to iterate over the minimum set of contiguous blocks that make up this Location
public int getMax()
WARNING: The location will not contain every point between getMin()
and getMax()
if isContiguous()
is false. If isContiguous()
does return false you should use the Iterator
returned by blockIterator()
to iterate over the minimum set of contiguous blocks that make up this Location
public boolean overlaps(Location l)
Abstractly, two locations overlap if they both contain any point.
l
- the Location to check
public boolean contains(Location l)
Abstractly, a location contains another if every point in the other location is contained within this one.
l
- the Location to check
public boolean contains(int p)
p
- the point to check
public boolean equals(java.lang.Object l)
Abstractly, a location is equal to another if for every point in one it is also in the other. This is equivalent to a.contains(b) && b.contains(a). You should call LocationTools.areEqual after casting l to Location.
l
- the Object to check
public Location intersection(Location l)
l
- the Location to intersect with
public Location union(Location l)
l
- the Location to union with
public SymbolList symbols(SymbolList seq)
seq
- the SymbolList to process
public Location translate(int dist)
dist
- the distance to translate (to the right)public boolean isContiguous()
true
if and only if this Location
contains every point from min
to
max
inclusive.public java.util.Iterator blockIterator()
Given any location, it can be considered to contain zero or more maximal contiguous blocks of width 1 or greater. The empty location is composed from nothing. A contiguous location is composed from itself. A non-contiguous location is composed from contiguous blocks seperated by gaps.
This method should return an Iterator over these maximally contiguous blocks starting with the left-most block, and finishing at the right-most block.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |