Class AbstractLocation

java.lang.Object
org.biojava3.core.sequence.location.template.AbstractLocation
All Implemented Interfaces:
Iterable<Location>, Location, Accessioned
Direct Known Subclasses:
InsdcLocations.BondLocation, InsdcLocations.OneOfLocation, SimpleLocation

public abstract class AbstractLocation extends Object implements Location
Base abstraction of a location which encodes for the majority of important features about a location such as the start, end and strand
Author:
ayates
  • Constructor Details

    • AbstractLocation

      public AbstractLocation(Point start, Point end, Strand strand, boolean circular, boolean betweenCompounds, List<Location> subLocations)
      Default constructor
      Parameters:
      start - start of the location
      end - end of the location
      strand - strand it is located on
      circular - Boolean which says if the current location was circular or not
      betweenCompounds - Indicates the location lies at the position between a pair of bases; means the bases must be next to each other (and therefore cannot be complex)
      subLocations - Sub locations which composes this location
    • AbstractLocation

      public AbstractLocation(Point start, Point end, Strand strand, boolean circular, boolean betweenCompounds, AccessionID accession, List<Location> subLocations)
      Default constructor
      Parameters:
      start - start of the location
      end - end of the location
      strand - strand it is located on
      circular - Boolean which says if the current location was circular or not
      betweenCompounds - Indicates the location lies at the position between a pair of bases; means the bases must be next to each other (and therefore cannot be complex)
      accession - The accession ID to link this location to
      subLocations - Sub locations which composes this location
  • Method Details

    • getEnd

      public Point getEnd()
      Description copied from interface: Location
      End of the location
      Specified by:
      getEnd in interface Location
    • getStart

      public Point getStart()
      Description copied from interface: Location
      Start of the location
      Specified by:
      getStart in interface Location
    • getLength

      public int getLength()
      Description copied from interface: Location
      Returns the length of the outer bounds of this location
      Specified by:
      getLength in interface Location
    • getStrand

      public Strand getStrand()
      Description copied from interface: Location
      Strand which the location is located on
      Specified by:
      getStrand in interface Location
    • getSubLocations

      public List<Location> getSubLocations()
      Description copied from interface: Location
      Gives access to the sub locations for this location. However this does not return sub-locations of sub-locations. For that functionality use #getAllSubLocations().
      Specified by:
      getSubLocations in interface Location
      Returns:
      A list of a single level of sub-locations
    • isComplex

      public boolean isComplex()
      Description copied from interface: Location
      Returns true if the location is considered to be complex meaning the location is actually composed of sub-locations.
      Specified by:
      isComplex in interface Location
    • getAccession

      public AccessionID getAccession()
      Description copied from interface: Accessioned
      Returns the AccessionID this location is currently bound with
      Specified by:
      getAccession in interface Accessioned
    • iterator

      public Iterator<Location> iterator()
      Iterates through all known sub-locations for this location but does not descend
      Specified by:
      iterator in interface Iterable<Location>
    • getRelevantSubLocations

      public List<Location> getRelevantSubLocations()
      Returns the normalised list of sub locations i.e. only those locations which do not have a sub location. Useful for when you need to get the exact elements of a location back for sub sequences.
      Specified by:
      getRelevantSubLocations in interface Location
      Returns:
      List of all sub locations including sub-locations of sub locations
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • isCircular

      public boolean isCircular()
      Description copied from interface: Location
      Indicates if this location is circular.
      Specified by:
      isCircular in interface Location
    • isBetweenCompounds

      public boolean isBetweenCompounds()
      Description copied from interface: Location
      Returns true if the position is meant to represent a point between two points such as 78^79. Only valid if start and stop are next to each other.
      Specified by:
      isBetweenCompounds in interface Location
    • getSubSequence

      public <C extends Compound> Sequence<C> getSubSequence(Sequence<C> sequence)
      If circular this will return the sequence represented by the sub locations joined. If not circular then we get the Sequence for the outer-bounds defined by this location.
      Specified by:
      getSubSequence in interface Location
      Parameters:
      sequence - The sequence object to work with
      Returns:
      The sequence
    • getRelevantSubSequence

      public <C extends Compound> Sequence<C> getRelevantSubSequence(Sequence<C> sequence)
      Description copied from interface: Location
      Will return a SequenceReader object which offers a view of all resolved locations i.e. those locations which are not complex and define the true Sequence represented
      Specified by:
      getRelevantSubSequence in interface Location
      Parameters:
      sequence - The sequence object to work with
      Returns:
      The full assembled sequence
    • toString

      public String toString()
      Overrides:
      toString in class Object