## org.biojavax.bio.seq
Class EmptyRichLocation

    java.lang.Object
      org.biojava.utils.Unchangeable
          org.biojavax.bio.seq.EmptyRichLocation

All Implemented Interfaces:
  Comparable, Annotatable, Location, Changeable, RichLocation, RichAnnotatable

    public class EmptyRichLocation

extends Unchangeable
implements RichLocation

An Empty implementation of RichLocation. This class is intended to act as a place holder for events like the intersection of two locations that do not overlap so that null need not be returned.

Since:
  1.5
Author:
  Richard Holland, Mark Schreiber, George Waldon

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojavax.bio.seq.RichLocation
`RichLocation.Strand, RichLocation.Tools`

Nested classes/interfaces inherited from interface org.biojava.bio.Annotatable
`Annotatable.AnnotationForwarder`

Field Summary

Fields inherited from interface org.biojavax.bio.seq.RichLocation
`CIRCULAR, EMPTY_LOCATION, FEATURE, NOTE, RANK, TERM`

Fields inherited from interface org.biojava.bio.symbol.Location
`empty, full, naturalOrder`

Fields inherited from interface org.biojava.bio.Annotatable
`ANNOTATION`

Constructor Summary
`EmptyRichLocation()`

Method Summary
`Iterator` `blockIterator()` Return an Iterator over the set of maximal contiguous sub-locations. ALWAYS RETURNS THE EMPTY SET ITERATOR
`int` `compareTo(Object o)` Empty Rich Locations return 0 when compared to other Empty ones, or -1 otherwise.
`boolean` `contains(int p)` Checks if this location contains a point. ALWAYS RETURNS FALSE
`boolean` `contains(Location l)` Checks if this location contains the other. ALWAYS RETURNS FALSE
`boolean` `equals(Object o)` Checks if this location is equivalent to the other. Empty Rich Locations only match other Empty Rich Locations
`Annotation` `getAnnotation()` Should return the associated annotation object. ALWAYS RETURNS THE EMPTY ANNOTATION
`int` `getCircularLength()` Retrieves the circular length of this location. ALWAYS RETURNS ZERO
`CrossRef` `getCrossRef()` Retrieves the crossref associated with this location. ALWAYS RETURNS NULL
`Location` `getDecorator(Class decoratorClass)` Checks the decorator chain for an instance of <class>decoratorClass</class> and return it if found. ALWAYS RETURNS NULL
`RichFeature` `getFeature()` Retrieves the feature this location is associated with. ALWAYS RETURNS NULL
`int` `getMax()` The maximum position contained. ALWAYS RETURNS ZERO
`Position` `getMaxPosition()` Retrieves the end position of this location. ALWAYS RETURNS THE EMPTY POSITION
`int` `getMin()` The minimum position contained. ALWAYS RETURNS ZERO
`Position` `getMinPosition()` Retrieves the start position of this location. ALWAYS RETURNS THE EMPTY POSITION
`Set` `getNoteSet()` Returns the set of notes associated with this object. ALWAYS RETURNS THE EMPTY ANNOTATION NOTE SET
`int` `getRank()` Retrieves the rank associated with this location. ALWAYS RETURNS ZERO
`RichAnnotation` `getRichAnnotation()` Return the associated annotation object. ALWAYS RETURNS THE EMPTY ANNOTATION
`RichLocation.Strand` `getStrand()` Retrieves the strand associated with this location. ALWAYS RETURNS THE UNKNOWN STRAND
`ComparableTerm` `getTerm()` Retrieves the term associated with this location. ALWAYS RETURNS NULL
`int` `hashCode()` ALWAYS RETURNS 17
`Location` `intersection(Location l)` Returns a Location that contains all points common to both ranges. ALWAYS RETURNS SELF
`boolean` `isContiguous()` Determine if a Location is contiguous. ALWAYS RETURNS TRUE
`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`. ALWAYS RETURNS PASSED LOCATION
`boolean` `overlaps(Location l)` Checks if these two locations overlap, using this location's concept of overlapping. ALWAYS RETURNS FALSE
`void` `setCircularLength(int sourceSeqLength)` Sets the circular length of this location. NOT IMPLEMENTED
`void` `setCrossRefResolver(CrossReferenceResolver r)` Sets the cross ref resolver to use when retrieving remote symbols. This method is ignored in the empty location because there is nothing to resolve.
`void` `setFeature(RichFeature feature)` Sets the feature this location is associated with. NOT IMPLEMENTED
`void` `setNoteSet(Set notes)` Clears the notes associated with this object and replaces them with the contents of this set. NOT IMPLEMENTED
`void` `setPositionResolver(PositionResolver p)` Sets the resolver to use when working out actual base coordinates from fuzzy positions. This method is ignored in the empty location because positions are fixed an cannot be modified.
`void` `setRank(int rank)` Sets the rank for this location. NOT IMPLEMENTED
`void` `setTerm(ComparableTerm term)` Sets the term for this location. NOT IMPLEMENTED
`void` `sort()` Sorts the member locations of a compound location. DOES NOTHING
`SymbolList` `symbols(SymbolList seq)` Return the symbols in a sequence that fall within this range. ALWAYS RETURNS THE EMPTY SYMBOL LIST
`String` `toString()` ALWAYS RETURNS "empty"
`Location` `translate(int dist)` Create a location that is a translation of this location. ALWAYS RETURNS SELF
`Location` `union(Location l)` Return a Location containing all points in either ranges. ALWAYS RETURNS PASSED LOCATION

Methods inherited from class org.biojava.utils.Unchangeable
`addChangeListener, addChangeListener, addForwarder, getForwarders, getListeners, isUnchanging, removeChangeListener, removeChangeListener, removeForwarder`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Constructor Detail

### EmptyRichLocation

    public EmptyRichLocation()

Method Detail

### getFeature

    public RichFeature getFeature()

  Retrieves the feature this location is associated with. May be null. ALWAYS RETURNS NULL

  Specified by:
    `getFeature` in interface `RichLocation`
  Returns:
    the feature.

### sort

    public void sort()

  Sorts the member locations of a compound location. Does nothing for non-compound locations. Sorting depends on the compareTo() method of the member locations - usually they will be sorted by their start position. This might be useful when used with the location returned by a union or intersection, or when setting the term of a compound location to ORDER_TERM. DOES NOTHING

  Specified by:
    `sort` in interface `RichLocation`

### setFeature

    public void setFeature(RichFeature feature)
                    throws ChangeVetoException

  Sets the feature this location is associated with. If null, that's fine, but you won't be able to persist it to the database until you give it a not-null value. NOT IMPLEMENTED

  Specified by:
    `setFeature` in interface `RichLocation`
  Parameters:
    `feature` - the feature.
  Throws:
    `ChangeVetoException`

### getCrossRef

    public CrossRef getCrossRef()

  Retrieves the crossref associated with this location. ALWAYS RETURNS NULL

  Specified by:
    `getCrossRef` in interface `RichLocation`
  Returns:
    the crossref.

### getAnnotation

    public Annotation getAnnotation()

  Should return the associated annotation object. ALWAYS RETURNS THE EMPTY ANNOTATION

  Specified by:
    `getAnnotation` in interface `Annotatable`
  Returns:
    an Annotation object, never null

### getRichAnnotation

    public RichAnnotation getRichAnnotation()

  Return the associated annotation object. ALWAYS RETURNS THE EMPTY ANNOTATION

  Specified by:
    `getRichAnnotation` in interface `RichAnnotatable`
  Returns:
    a RichAnnotation object, never null

### getNoteSet

    public Set getNoteSet()

  Returns the set of notes associated with this object. Would normally delegate call to internal RichAnnotation instance. ALWAYS RETURNS THE EMPTY ANNOTATION NOTE SET

  Specified by:
    `getNoteSet` in interface `RichAnnotatable`
  Returns:
    set a set of Note objects.
  See Also:
    `Note`

### setNoteSet

    public void setNoteSet(Set notes)
                    throws ChangeVetoException

  Clears the notes associated with this object and replaces them with the contents of this set. Would normally delegate call to internal RichAnnotation instance. NOT IMPLEMENTED

  Specified by:
    `setNoteSet` in interface `RichAnnotatable`
  Parameters:
    `notes` - the set of Note objects to replace the existing ones with.
  Throws:
    `ChangeVetoException` - if the set is null or contains any objects that are not Note objects.
  See Also:
    `Note`

### getTerm

    public ComparableTerm getTerm()

  Retrieves the term associated with this location. ALWAYS RETURNS NULL

  Specified by:
    `getTerm` in interface `RichLocation`
  Returns:
    the term.

### setTerm

    public void setTerm(ComparableTerm term)
                 throws ChangeVetoException

  Sets the term for this location. NOT IMPLEMENTED

  Specified by:
    `setTerm` in interface `RichLocation`
  Parameters:
    `term` - the term this location should adopt.
  Throws:
    `ChangeVetoException` - in case of error.

### getCircularLength

    public int getCircularLength()

  Retrieves the circular length of this location. If it is 0, the location is not circular. If it is not zero, then the number refers to the wrapping length of the location. eg. 100 would signify that a position of 112 would actually be a position of 112-100 = 12. ALWAYS RETURNS ZERO

  Specified by:
    `getCircularLength` in interface `RichLocation`
  Returns:
    the position.

### setCircularLength

    public void setCircularLength(int sourceSeqLength)
                           throws ChangeVetoException

  Sets the circular length of this location. If it is 0, the location is not circular. If it is not zero, then the number refers to the wrapping length of the location. eg. 100 would signify that a position of 112 would actually be a position of 112-100 = 12. NOT IMPLEMENTED

  Specified by:
    `setCircularLength` in interface `RichLocation`
  Parameters:
    `sourceSeqLength` - the circular length of this location
  Throws:
    `ChangeVetoException` - if it doesn't want to change.

### getStrand

    public RichLocation.Strand getStrand()

  Retrieves the strand associated with this location. ALWAYS RETURNS THE UNKNOWN STRAND

  Specified by:
    `getStrand` in interface `RichLocation`
  Returns:
    the strand.

### getRank

    public int getRank()

  Retrieves the rank associated with this location. ALWAYS RETURNS ZERO

  Specified by:
    `getRank` in interface `RichLocation`
  Returns:
    the rank.

### setRank

    public void setRank(int rank)
                 throws ChangeVetoException

  Sets the rank for this location. NOT IMPLEMENTED

  Specified by:
    `setRank` in interface `RichLocation`
  Parameters:
    `rank` - the rank this location should adopt.
  Throws:
    `ChangeVetoException` - in case of error.

### getMax

    public int getMax()

  The maximum position contained.

  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` ALWAYS RETURNS ZERO

  Specified by:
    `getMax` in interface `Location`
  Returns:
    the maximum position contained

### getMin

    public int getMin()

  The minimum position contained.

  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` ALWAYS RETURNS ZERO

  Specified by:
    `getMin` in interface `Location`
  Returns:
    the minimum position contained

### getMinPosition

    public Position getMinPosition()

  Retrieves the start position of this location. ALWAYS RETURNS THE EMPTY POSITION

  Specified by:
    `getMinPosition` in interface `RichLocation`
  Returns:
    the position.

### getMaxPosition

    public Position getMaxPosition()

  Retrieves the end position of this location. ALWAYS RETURNS THE EMPTY POSITION

  Specified by:
    `getMaxPosition` in interface `RichLocation`
  Returns:
    the position.

### setPositionResolver

    public void setPositionResolver(PositionResolver p)

  Sets the resolver to use when working out actual base coordinates from fuzzy positions. This method is ignored in the empty location because positions are fixed an cannot be modified.

  Specified by:
    `setPositionResolver` in interface `RichLocation`
  Parameters:
    `p` - the position resolver to use.

### blockIterator

    public Iterator blockIterator()

  Return an Iterator over the set of maximal contiguous sub-locations.

  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. ALWAYS RETURNS THE EMPTY SET ITERATOR

  Specified by:
    `blockIterator` in interface `Location`
  Returns:
    an Iterator over Location objects that are the maximally contiguous set of locations contained within this location

### isContiguous

    public boolean isContiguous()

  Determine if a Location is contiguous. ALWAYS RETURNS TRUE

  Specified by:
    `isContiguous` in interface `Location`
  Returns:
    `true` if and only if this Location contains every point from `min` to `max` inclusive.

### contains

    public boolean contains(int p)

  Checks if this location contains a point. ALWAYS RETURNS FALSE

  Specified by:
    `contains` in interface `Location`
  Parameters:
    `p` - the point to check
  Returns:
    true if this contains p, otherwise false

### getDecorator

    public Location getDecorator(Class decoratorClass)

  Checks the decorator chain for an instance of <class>decoratorClass</class> and return it if found.

  The default behavior is to return null. If the current object is a decorator and is an instance of <class>decoratorClass</class> it should return itself. Otherwise, the decorator should chain this method onto the instance it wraps. ALWAYS RETURNS NULL

  Specified by:
    `getDecorator` in interface `Location`
  Parameters:
    `decoratorClass` - the Class to check
  Returns:
    a Location if an instance of this class is present in the decorator chain and null otherwise.

### newInstance

    public 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`.

  The default behavior is to return <loc>loc</loc> unchanged. If the class is a location decorator then it should instantiate an instance of the same type that decorates `loc`. ALWAYS RETURNS PASSED LOCATION

  Specified by:
    `newInstance` in interface `Location`
  Parameters:
    `loc` - the Location to use as template
  Returns:
    a Location instance based on loc with the same decorators as the current instance

### translate

    public Location translate(int dist)

  Create a location that is a translation of this location. ALWAYS RETURNS SELF

  Specified by:
    `translate` in interface `Location`
  Parameters:
    `dist` - the distance to translate (to the right)

### contains

    public boolean contains(Location l)

  Checks if this location contains the other.

  Abstractly, a location contains another if every point in the other location is contained within this one. ALWAYS RETURNS FALSE

  Specified by:
    `contains` in interface `Location`
  Parameters:
    `l` - the Location to check
  Returns:
    true if this contains l, otherwise false

### overlaps

    public boolean overlaps(Location l)

  Checks if these two locations overlap, using this location's concept of overlapping.

  Abstractly, two locations overlap if they both contain any point. ALWAYS RETURNS FALSE

  Specified by:
    `overlaps` in interface `Location`
  Parameters:
    `l` - the Location to check
  Returns:
    true if they overlap, otherwise false

### union

    public Location union(Location l)

  Return a Location containing all points in either ranges. ALWAYS RETURNS PASSED LOCATION

  Specified by:
    `union` in interface `Location`
  Parameters:
    `l` - the Location to union with
  Returns:
    a Location representing the union

### intersection

    public Location intersection(Location l)

  Returns a Location that contains all points common to both ranges. ALWAYS RETURNS SELF

  Specified by:
    `intersection` in interface `Location`
  Parameters:
    `l` - the Location to intersect with
  Returns:
    a Location containing all points common to both, or the empty range if there are no such points

### setCrossRefResolver

    public void setCrossRefResolver(CrossReferenceResolver r)

  Sets the cross ref resolver to use when retrieving remote symbols. If none is given, then the default from RichObjectFactory.getDefaultCrossRefResolver() is used. This method is ignored in the empty location because there is nothing to resolve.

  Specified by:
    `setCrossRefResolver` in interface `RichLocation`
  Parameters:
    `r` - the resolver to use.

### symbols

    public SymbolList symbols(SymbolList seq)

  Return the symbols in a sequence that fall within this range. ALWAYS RETURNS THE EMPTY SYMBOL LIST

  Specified by:
    `symbols` in interface `Location`
  Parameters:
    `seq` - the SymbolList to process
  Returns:
    the SymbolList containing the symbols in seq in this range

### hashCode

    public int hashCode()

  ALWAYS RETURNS 17

  Overrides:
    `hashCode` in class `Object`

### equals

    public boolean equals(Object o)

  Checks if this location is equivalent to the other.

  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. Empty Rich Locations only match other Empty Rich Locations

  Specified by:
    `equals` in interface `Location`
  Overrides:
    `equals` in class `Object`
  Parameters:
    `o` - the Object to check
  Returns:
    true if this equals l, otherwise false

### compareTo

    public int compareTo(Object o)

  Empty Rich Locations return 0 when compared to other Empty ones, or -1 otherwise.

  Specified by:
    `compareTo` in interface `Comparable`

### toString

    public String toString()

  ALWAYS RETURNS "empty"

  Overrides:
    `toString` in class `Object`