Class AbstractLocation

    • Constructor Detail

      • AbstractLocation

        protected AbstractLocation()
      • AbstractLocation

        public AbstractLocation​(Point start,
                                Point end,
                                Strand strand,
                                boolean circular,
                                boolean betweenCompounds,
                                java.util.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,
                                java.util.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 Detail

      • assertLocation

        protected void assertLocation()
      • 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 java.util.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
      • isPartialOn5prime

        public boolean isPartialOn5prime()
      • setPartialOn5prime

        public void setPartialOn5prime​(boolean partialOn5prime)
      • isPartialOn3prime

        public boolean isPartialOn3prime()
      • setPartialOn3prime

        public void setPartialOn3prime​(boolean partialOn3prime)
      • isPartial

        public boolean isPartial()
      • iterator

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

        public java.util.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​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.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 CompoundSequence<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 CompoundSequence<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
      • reverseSequence

        protected <C extends CompoundSequence<C> reverseSequence​(Sequence<C> sequence)
        Reverses and (if possible) complements the Sequence so as to represent the reverse strand (if one exists). Also does checking to see if the location we are on is on the reverse strand or not.
      • canComplement

        protected <C extends Compound> boolean canComplement​(Sequence<C> sequence)
        Uses the Sequence's CompoundSet to decide if a compound can be assgined to ComplementCompound meaning it can complement
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • setCircular

        protected void setCircular​(boolean circular)
      • setEnd

        protected void setEnd​(Point end)
      • setStart

        protected void setStart​(Point start)
      • setStrand

        public void setStrand​(Strand strand)
      • setBetweenCompounds

        public void setBetweenCompounds​(boolean betweenCompounds)
      • setSubLocations

        public void setSubLocations​(java.util.List<Location> subLocations)
      • setAccession

        public void setAccession​(AccessionID accession)