## org.biojava.bio.seq.projection
Interface ProjectionContext

All Known Implementing Classes:
  ProjectedFeatureHolder

public interface ProjectionContext

Context for projected features. The projection proxies make callbacks into this context object to do much of the actual work of projection. Different implementations can be provided to do more complex projection and data integration.

Since:
  1.2
Author:
  Thomas Down

Method Summary
`void` `addChangeListener(Feature f, ChangeListener cl, ChangeType ct)` Delegate for addChangeListener
`Feature` `createFeature(Feature f, Feature.Template templ)` Delegate for createFeature
`Annotation` `getAnnotation(Feature f)` Get the annotation bundle of the projected feature.
`Location` `getLocation(Feature f)` Get the location of the projected feature
`FeatureHolder` `getParent(Feature f)` Get the parent FeatureHolder into which a feature should be projected
`FeatureFilter` `getSchema(Feature f)` Delegate for getSchema
`Sequence` `getSequence(Feature f)` Get the Sequence which defines the coordinate system for the projected feature.
`StrandedFeature.Strand` `getStrand(StrandedFeature f)` Get the strand of the projected feature.
`FeatureHolder` `projectChildFeatures(Feature f, FeatureHolder parent)` Get the child features of the projected feature.
`void` `removeChangeListener(Feature f, ChangeListener cl, ChangeType ct)` Delegate for removeChangeListener
`void` `removeFeature(Feature f, Feature dyingChild)` Delegate for removeFeature

Method Detail

### getParent

    public FeatureHolder getParent(Feature f)

  Get the parent FeatureHolder into which a feature should be projected

### getSequence

    public Sequence getSequence(Feature f)

  Get the Sequence which defines the coordinate system for the projected feature. This should be reachable by one or more getParent operations.

### getLocation

    public Location getLocation(Feature f)

  Get the location of the projected feature

### getStrand

    public StrandedFeature.Strand getStrand(StrandedFeature f)

  Get the strand of the projected feature.

### getAnnotation

    public Annotation getAnnotation(Feature f)

  Get the annotation bundle of the projected feature. This will often (but not always) be identical to that of the underlying feature.

### projectChildFeatures

    public FeatureHolder projectChildFeatures(Feature f,
                                              FeatureHolder parent)

  Get the child features of the projected feature.

### createFeature

    public Feature createFeature(Feature f,
                                 Feature.Template templ)
                          throws BioException,
                                 ChangeVetoException

  Delegate for createFeature

  Throws:
    `BioException`
    `ChangeVetoException`
  Since:
    1.3

### removeFeature

    public void removeFeature(Feature f,
                              Feature dyingChild)
                       throws ChangeVetoException

  Delegate for removeFeature

  Throws:
    `ChangeVetoException`
  Since:
    1.3

### addChangeListener

    public void addChangeListener(Feature f,
                                  ChangeListener cl,
                                  ChangeType ct)

  Delegate for addChangeListener

  Since:
    1.3

### removeChangeListener

    public void removeChangeListener(Feature f,
                                     ChangeListener cl,
                                     ChangeType ct)

  Delegate for removeChangeListener

  Since:
    1.3

### getSchema

    public FeatureFilter getSchema(Feature f)

  Delegate for getSchema

  Since:
    1.3