Class 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:
  • Method Details

    • 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

      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