org.biojava.bio.symbol
Class MergeLocation

java.lang.Object
  extended by org.biojava.bio.symbol.AbstractLocation
      extended by org.biojava.bio.symbol.AbstractRangeLocation
          extended by org.biojava.bio.symbol.RangeLocation
              extended by org.biojava.bio.symbol.MergeLocation
All Implemented Interfaces:
Serializable, Location

public class MergeLocation
extends RangeLocation

Produced by LocationTools as a result of union operations. It's a RangeLocation and can be used as such but it also retains knowledge of which individual components made it up. None of the methods of RangeLocation are overridden only new methods have been added to get the subcomponents.

For example a union operation between the following locations [1,20],[27,45],[30-70] will produce a CompoundLocation like this: {[1,20],[27,70]}, the last two locations have been merged into a MergeLocation which contains the two subcomponents.

Copyright: Copyright (c) 2002

Company: AgResearch

Version:
1.0
Author:
Mark Schreiber, Francois Pepin
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.biojava.bio.symbol.Location
empty, full, naturalOrder
 
Method Summary
 ListIterator componentLocationIterator()
           
 List getComponentList(boolean recurse)
          Gets the component locations that make up this one
static MergeLocation mergeLocations(List componentLocations)
          Static Factory method for getting an instance of a MergeLocation
static MergeLocation mergeLocations(Location locA, Location locB)
           
 
Methods inherited from class org.biojava.bio.symbol.RangeLocation
getMax, getMin, toString, translate
 
Methods inherited from class org.biojava.bio.symbol.AbstractRangeLocation
blockIterator, contains, isContiguous, symbols
 
Methods inherited from class org.biojava.bio.symbol.AbstractLocation
contains, equals, getDecorator, hashCode, intersection, newInstance, overlaps, union
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getComponentList

public List getComponentList(boolean recurse)
Gets the component locations that make up this one

Parameters:
recurse - if true the method lists the component locations of all nested MergedLocations.
Returns:
a List of Locations.

componentLocationIterator

public ListIterator componentLocationIterator()
Returns:
A ListIterator over the component locations. The iterator does not recurse nested MergeLocations.

mergeLocations

public static MergeLocation mergeLocations(List componentLocations)
                                    throws BioException
Static Factory method for getting an instance of a MergeLocation

Parameters:
componentLocations - the Locations to Merge
Returns:
the merged location
Throws:
BioException - if the list contains objects that are not Locations or if the locations don't represent a contiguous block. Use LocationTools.union() if you want to merge discontinuous blocks.

mergeLocations

public static MergeLocation mergeLocations(Location locA,
                                           Location locB)
                                    throws BioException
Throws:
BioException