## org.biojava.bio.seq
Interface RemoteFeature

All Superinterfaces:
  Annotatable, Changeable, Feature, FeatureHolder, StrandedFeature

All Known Implementing Classes:
  SimpleRemoteFeature

    public interface RemoteFeature

extends StrandedFeature

A feature that indicates that there is some remote feature that can't be represented entirely on a single Sequence.

These are the sort of features that represent things like the horible Embl remote feature spans (such as AL24199:100..200). The method getRemoteFeature should return a Feature on another Sequence that properly represents the Location. This Seqeunce will often be an Assembly of the parent Sequence to this Feature, and the Sequence associated with the remote Location sequence ID. Thse Features are also applicable to the case when a portion of a Sequence is projected but some Feature overlaps the boundary of the projected portion.

Since:
  1.2
Author:
  Matthew Pocock, Greg Cox
See Also:
  `RichFeature`

Nested Class Summary
`static class` `RemoteFeature.Region` A tuple of Location and sequence ID.
`static interface` `RemoteFeature.Resolver` The interface for objects that actually can take a RemoteFeature and return a Sequence object with the feature resolved into a real feature.
`static class` `RemoteFeature.Template`

Nested classes/interfaces inherited from interface org.biojava.bio.seq.StrandedFeature
`StrandedFeature.Strand`

Nested classes/interfaces inherited from interface org.biojava.bio.seq.Feature
`Feature.ByLocationComparator`

Nested classes/interfaces inherited from interface org.biojava.bio.seq.FeatureHolder
`FeatureHolder.EmptyFeatureHolder`

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

Field Summary

Fields inherited from interface org.biojava.bio.seq.StrandedFeature
`NEGATIVE, POSITIVE, STRAND, UNKNOWN`

Fields inherited from interface org.biojava.bio.seq.Feature
`byLocationOrder, LOCATION, PROPERTY_DATA_KEY, SOURCE, SOURCETERM, TYPE, TYPETERM`

Fields inherited from interface org.biojava.bio.seq.FeatureHolder
`EMPTY_FEATURE_HOLDER, FEATURES, SCHEMA`

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

Method Summary
`List` `getRegions()` Retrieve the list of Regions that locate this feature both localy and remotely.
`Feature` `getRemoteFeature()` Retrieve the Feature on some assembly Sequence that can represent this RemoteFeature properly.
`RemoteFeature.Resolver` `getResolver()`

Methods inherited from interface org.biojava.bio.seq.StrandedFeature
`getStrand, getSymbols, setStrand`

Methods inherited from interface org.biojava.bio.seq.Feature
`features, getLocation, getParent, getSequence, getSource, getSourceTerm, getType, getTypeTerm, makeTemplate, setLocation, setSource, setSourceTerm, setType, setTypeTerm`

Methods inherited from interface org.biojava.bio.seq.FeatureHolder
`containsFeature, countFeatures, createFeature, filter, filter, getSchema, removeFeature`

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

Methods inherited from interface org.biojava.bio.Annotatable
`getAnnotation`

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

Method Detail

### getRegions

    List getRegions()

  Retrieve the list of Regions that locate this feature both localy and remotely. Local Regions have a null sequence ID.

  Returns:
    an immutable List of Regions

### getRemoteFeature

    Feature getRemoteFeature()
                             throws BioException

  Retrieve the Feature on some assembly Sequence that can represent this RemoteFeature properly.

  This method should be equivalent to calling `getResolver().resolve(this)`.

  Returns:
    the Feature on another Sequence that this is projected onto
  Throws:
    `BioException` - if for any reason the remote Feature could not be constructed

### getResolver

    RemoteFeature.Resolver getResolver()