## org.biojava.bio.seq
Interface StrandedFeature

All Superinterfaces:
  Annotatable, Changeable, Feature, FeatureHolder

All Known Subinterfaces:
  ComponentFeature, FramedFeature, HomologyFeature, RemoteFeature, RestrictionSite, RichFeature, SimilarityPairFeature

All Known Implementing Classes:
  SimpleFramedFeature, SimpleHomologyFeature, SimpleRemoteFeature, SimpleRestrictionSite, SimpleRichFeature, SimpleSimilarityPairFeature, SimpleStrandedFeature

    public interface StrandedFeature

extends Feature

Adds the concept of 'strand' to features.

Strandedness only applies to some types of sequence, such as DNA. Any implementation should blow chunks to avoid being added to a sequence for which strand is a foreign concept. Strand is intrinsicly part of all `RichFeatures` We strongly recommend using this interface.

Author:
  Matthew Pocock
See Also:
  `RichFeature`

Nested Class Summary
`static class` `StrandedFeature.Strand` Class to represent the 'strandedness' of a feature.
`static class` `StrandedFeature.Template` Template class for parameterizing the creation of a new `StrandedFeature`.

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
`static StrandedFeature.Strand` `NEGATIVE` Flag to indicate that a feature is on the negative strand.
`static StrandedFeature.Strand` `POSITIVE` Flag to indicate that a feature is on the positive strand.
`static ChangeType` `STRAND` The strand of this feature is being altered.
`static StrandedFeature.Strand` `UNKNOWN` Flag to indicate that a feature has an unknown strand.

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
`StrandedFeature.Strand` `getStrand()` Retrieve the strand that this feature lies upon.
`SymbolList` `getSymbols()` Return a list of symbols that are contained in this feature.
`void` `setStrand(StrandedFeature.Strand strand)` Set the strand that this feature lies upon.

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`

Field Detail

### STRAND

    static final ChangeType STRAND

  The strand of this feature is being altered.

### POSITIVE

    static final StrandedFeature.Strand POSITIVE

  Flag to indicate that a feature is on the positive strand.

### NEGATIVE

    static final StrandedFeature.Strand NEGATIVE

  Flag to indicate that a feature is on the negative strand.

### UNKNOWN

    static final StrandedFeature.Strand UNKNOWN

  Flag to indicate that a feature has an unknown strand.

Method Detail

### getStrand

    StrandedFeature.Strand getStrand()

  Retrieve the strand that this feature lies upon.

  This will be one of StrandedFeature.POSITIVE or NEGATIVE.

  Returns:
    one of the Strand constants

### setStrand

    void setStrand(StrandedFeature.Strand strand)
                   throws ChangeVetoException

  Set the strand that this feature lies upon.

  This will be one of StrandedFeature.POSITIVE or NEGATIVE.

  Parameters:
    `strand` - a `Strand`.
  Throws:
    `ChangeVetoException` - if the strand may not be changed.

### getSymbols

    SymbolList getSymbols()

  Return a list of symbols that are contained in this feature.

  The symbols may not be contiguous in the original sequence, but they will be concatenated together in the resulting SymbolList.

  The order of the Symbols within the resulting symbol list will be according to the concept of ordering within the location object.

  If the feature is on the negative strand then the SymbolList will be reverse-complemented as appropriate.

  Specified by:
    `getSymbols` in interface `Feature`
  Returns:
    a SymbolList containing each symbol of the parent sequence contained within this feature in the order they appear in the parent